Как вставить значения в словарь C# при создании экземпляра?
Кто-нибудь знает, есть ли способ вставить значения в словарь C# при его создании? Я могу, но не хочу делать dict.Add(int, "string")
для каждого элемента, если есть что-то более эффективное, например:
Dictionary<int, string>(){(0, "string"),(1,"string2"),(2,"string3")};
8 ответов
Здесь есть целая страница о том, как это сделать:
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}}
};
Dictionary<int, string> dictionary = new Dictionary<int, string> {
{ 0, "string" },
{ 1, "string2" },
{ 2, "string3" } };
Вы были почти там
var dict = new Dictionary<int, string>()
{ {0, "string"}, {1,"string2"},{2,"string3"}};
Вы также можете использовать лямбда-выражения для вставки любых пар Key Value из любого другого объекта IEnumerable. Ключ и значение могут быть любого типа, который вы хотите.
Dictionary<int, string> newDictionary =
SomeList.ToDictionary(k => k.ID, v => v.Name);
Я считаю, что гораздо проще, так как вы используете объекты IEnumerable везде в.NET
Надеюсь, это поможет!!!
Тэд.
Точно так же, как вы знаете, как в 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}
};
Намного чище:)
Вы можете создать словарь и добавить в него элементы следующим образом:
var dictionary = new Dictionary<int, string>
{
{0, "string"},
{1, "string2"},
{2, "string3"}
};
Надеюсь, это будет работать отлично.
Dictionary<string, double> D =new Dictionary<string, double>();
D.Add("String", 17.00);
Обычно это не рекомендуется, но во время неопределенных кризисов вы можете использовать
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"];
}