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

kd7*_*iwp 146 c# dictionary

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

Dictionary<int, string>(){(0, "string"),(1,"string2"),(2,"string3")};
Run Code Online (Sandbox Code Playgroud)

Dan*_*ker 192

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

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

例:

在下面的代码示例中,使用Dictionary<TKey, TValue>类型的实例初始化a 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}}
};
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于.NET 3.5编译器,但请记住这一点. (3认同)

Tim*_*ter 45

Dictionary<int, string> dictionary = new Dictionary<int, string> { 
   { 0, "string" }, 
   { 1, "string2" }, 
   { 2, "string3" } };
Run Code Online (Sandbox Code Playgroud)


Hen*_*man 12

你几乎在那里:

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


mat*_*die 10

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

Dictionary<int, string> newDictionary = 
                 SomeList.ToDictionary(k => k.ID, v => v.Name);
Run Code Online (Sandbox Code Playgroud)

我发现这更简单,因为你在.NET中使用IEnumerable对象

希望有所帮助!

泰德.


Jos*_*eph 7

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

var dictionary = new Dictionary<int, string>
    {
        {0, "string"},
        {1, "string2"},
        {2, "string3"}
    };
Run Code Online (Sandbox Code Playgroud)


rus*_*ema 7

就像你知道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}
};
Run Code Online (Sandbox Code Playgroud)

更干净:)