C# 3 имеет расширение языка, называемое Инициализаторы коллекции, которые позволяют инициализировать значения коллекции в одном выражении.
Ниже приведен пример с использованием Dictionary<,>
:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var dict = new Dictionary<string, int>
{
{"a", 23}, {"b", 45}, {"c", 67}, {"d", 89}
};
}
}
Это расширение языка поддерживается в C# 3 компилятор и любого типа, который реализует IEnumerable
и имеет Add
публичный метод.
Если вас интересуют, я хотел бы предложить вам прочитать this question I asked here on StackOverflow, чтобы почему С # команды реализуется это расширение языка такого любопытным образом (когда вы читаете отличные ответы на вопрос, вы увидите, что он делает много смысл).
Есть ли аналогичный синтаксис для определения словарей, которые имеют несколько уровней в глубину? Например, 'Dictionary>'? –
Я нашел технику и добавлю ее как отредактировать к вашему ответу, хотя она немного многословна, не уверена, что она спасает кого-то много времени. –