如何在实例化时将值插入C#Dictionary?

时间:2009-06-24 16:56:11

标签: c# dictionary

有人知道我创建它时是否可以将值插入C#Dictionary?我可以,但不想,做 如果有更高效的内容,则每个项目dict.Add(int, "string")

Dictionary<int, string>(){(0, "string"),(1,"string2"),(2,"string3")};

8 个答案:

答案 0 :(得分:186)

这里有关于如何做到这一点的整页:

http://msdn.microsoft.com/en-us/library/bb531208.aspx

示例:

  

在下面的代码示例中,Dictionary<TKey, TValue>是   使用StudentName类型的实例初始化:

var students = new Dictionary<int, StudentName>()
{
    { 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
    { 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
    { 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};

答案 1 :(得分:44)

Dictionary<int, string> dictionary = new Dictionary<int, string> { 
   { 0, "string" }, 
   { 1, "string2" }, 
   { 2, "string3" } };

答案 2 :(得分:11)

你快到了那里:

var dict = new Dictionary<int, string>()
{ {0, "string"}, {1,"string2"},{2,"string3"}};

答案 3 :(得分:9)

您还可以使用Lambda表达式从任何其他IEnumerable对象插入任何键值对。键和值可以是您想要的任何类型。

Dictionary<int, string> newDictionary = 
                 SomeList.ToDictionary(k => k.ID, v => v.Name);

我发现因为在.NET中无处不在使用IEnumerable对象而更加简单

希望有所帮助!!!

应答设备。

答案 4 :(得分:6)

您可以实例化字典并将项目添加到其中,如下所示:

var dictionary = new Dictionary<int, string>
    {
        {0, "string"},
        {1, "string2"},
        {2, "string3"}
    };

答案 5 :(得分:6)

就像你知道C#6一样,你现在可以按如下方式初始化它

var students = new Dictionary<int, StudentName>()
{
    [111] = new StudentName {FirstName="Sachin", LastName="Karnik", ID=211},
    [112] = new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317},
    [113] = new StudentName {FirstName="Andy", LastName="Ruth", ID=198}
};

更清洁:)

答案 6 :(得分:0)

通常不建议这样做,但是在不确定的危机时期您可以使用

Dictionary<string, object> jsonMock = new Dictionary<string, object>() { { "object a", objA }, { "object b", objB } };

// example of unserializing
ClassForObjectA anotherObjA = null;
if(jsonMock.Contains("object a")) {
    anotherObjA = (ClassForObjA)jsonMock["object a"];
}

答案 7 :(得分:-1)

希望它能完美运作。

Dictionary<string, double> D =new Dictionary<string, double>(); D.Add("String", 17.00);