Подтвердить что ты не робот

Наиболее сжатый способ инициализации хэш-таблицы С#

Позволяет ли С# разрешать использование хэш-таблиц в однострочных выражениях? Я думаю о чем-то эквивалентном ниже Python:

mydict = {"a": 23, "b": 45, "c": 67, "d": 89}

Другими словами, существует ли альтернатива установке каждой пары ключ-значение в отдельном выражении?

4b9b3361

Ответ 1

С# 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}
        };
    }
}

Это расширение языка поддерживается компилятором С# 3 и любым типом, реализующим IEnumerable и имеющим общедоступный метод Add.

Если вы заинтересованы, я предлагаю вам прочитать fooobar.com/info/4544/..., о том, почему команда С# реализовала это языковое расширение таким любопытным образом (один раз вы читаете отличные ответы на вопрос, который вы увидите, что это имеет большой смысл).