如何在c#中创建具有多个键和值的哈希表
本文关键字:键和值 哈希表 创建 | 更新日期: 2023-09-27 18:04:02
我需要在c#中实现ActionScript3的以下结构:
objectArray.push({name:"Stx10",category:123 , isSet:false, isEmpty:true});
之后我可以像这样访问数组中的对象:
String name =objectArray[i].name
所以我自然地想到了C Sharp哈希表,但它只允许一个键->值插入。我不敢相信。net框架没有解决这样的问题…任何帮助将非常感激!
在我看来,你是在把一个自定义类型推入一个数组。
使用IList将给你一个快速的Add方法,你可以在其中传递一个你自己类型的新对象,例如:
IList<MyType> myCollection = new List<MyType>();
myCollection.Add(new MyType{
Name = "foo",
Category = "bar",
IsSrt = true,
IsEmpty = true
});
根据Henk对Porges的回答的评论,这里有一种方法可以使用动态类型做同样的事情,从而消除了自定义类型的需要:
IList<dynamic> myCollection = new List<dynamic>();
myCollection.Add(new {
Name = "foo",
Category = "bar",
IsSet = true,
IsEmpty = true});
如果你只是像你的例子那样通过索引访问元素,那么你不需要散列访问,你可以只使用List<T>
。
我将把你的信息封装成这样的类型:
class Thing {
public string Name {get; set;}
public int Category {get; set;}
public bool IsSet {get; set;}
public bool IsEmpty {get; set;}
}
:
objectList.Add(new Thing{Name="Stx10", Category=123, IsSet=false, IsEmpty=true})
// ...
string name = objectList[i].Name;
别忘了
var d=new Dictionary<string, object>();
你的意图是什么?