在C#中将对象初始化为Dictionary类型的值

时间:2017-07-13 11:22:33

标签: c# dictionary

我正在尝试在Dictionary中使用对象。但是我喜欢在Dictionary本身的声明中定义对象的参数,如:

location=no

可以在这里定义对象的params,还是应该在声明Dictionary本身之前创建类?

现在我正在使用

public IDictionary<int,object[]> Whatever {get;set;}

2 个答案:

答案 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会建议你这样做。 如果你应该这样做取决于你。