Как загрузить значения в словарь с помощью {}
Можно ли загрузить значения в словарь с помощью { } ?
Это не удается
static Dictionary<byte, byte> dict = new Dictionary<byte, byte>() { new KeyValuePair<byte, byte>(1, 1) };
Это не подводит, поэтому я подозреваю, что есть синтаксис для загрузки в { }
static Dictionary<byte, byte> dic1252expand = new Dictionary<byte, byte>() { };
Это пример синтаксиса, который работает
byte[] bytes = new byte[] { 1, 2, 3 };
KeyValuePair<byte, byte> kvp = new KeyValuePair<byte, byte>(1, 1);
5 ответов:
Если вы даете кому-то рыбу, у него есть рыба; если вы учите его ловить рыбу, вам не нужно давать ему рыбу. Все опубликованные ответы являются правильными, но ни один из них не говорит вам , Как найти ответ для себя.
Синтаксис инициализатора коллекции в C# - это "синтаксический сахар"; это просто более приятный способ написать скучный код. Когда вы пишете:C c = new C() { p, q, { r, s }, {t, u, v} };Это то же самое, как если бы вы написали:
C c; C temporary = new C(); temporary.Add(p); temporary.Add(q); temporary.Add(r, s); temporary.Add(t, u, v); c = temporary;Теперь должно быть ясно, как вы можете выяснить, что нужно поместить в предложение инициализатора: посмотрите на тип и посмотрите, что различные методы Add принимают в качестве аргументов. В вашем случае метод Add словаря принимает ключ и значение, поэтому инициализатор должен быть
{ { k1, v1 }, { k2, v2 } , ... }Есть смысл?
var dict = new Dictionary<int, int>() { { 1, 1 }, { 2, 1 }, { 3, 2 } };Это настроит словарь с тремя парами ключевых значений.
Comments