我正在尝试在Dictionary中使用对象。但是我喜欢在Dictionary本身的声明中定义对象的参数,如:
location=no
可以在这里定义对象的params,还是应该在声明Dictionary本身之前创建类?
现在我正在使用
public IDictionary<int,object[]> Whatever {get;set;}
答案 0 :(得分:0)
您可以在TKey
的{{1}}和TValue
上使用任何类型。 Dictionary
是自定义类型(如类)的特殊情况,您应该忽略方法TKey
(和GetHashCode()
)以避免重复项。
在您的情况下,Equals()
作为键是可以的,您可以添加这样的新项目:
int
答案 1 :(得分:0)
从c#7开始,你可以这么认为
public class A
{
public IDictionary<int,(string a, bool b)> Whatever { get; set; }
}
您可以使用
创建var a = new A
{
Whatever = new Dictionary<int,(string a,bool b)>
{
{ 10, (a:"A",b:true) },
{ 20, (a:"A",b:true) },
{ 30, (a:"A",b:true) }
}
};
如果你想使用它,你需要安装System.ValueTuple,但是当你添加代码时,vs 2017会建议你这样做。 如果你应该这样做取决于你。