c#ToDictionary с проверкой ContainsKey

У меня есть список, который я хочу поместить в словарь, для простоты вставляемые значения будут одинаковыми.

Я могу использовать цикл foreach.

    List<string> list = new List<string>();
    list.Add("Earth");
    list.Add("Wind");
    list.Add("Fire");
    list.Add("Water");
    list.Add("Water"); // Will NOT BE INSERTED using the foreach loop

    var myDictionary= new Dictionary<string, int>();
    foreach (string value in list)
    {
        if (!myDictionary.ContainsKey(value))
        {
        myDictionary.Add(value, 1);
        }
    }

Вышеизложенное работает.

Но я хочу использовать ToDictionary следующим образом.-

    Dictionary<string, int> myDictionary2 = list.ToDictionary(i => i, i => 1);

Конечно, это не работает, потому что я дважды добавляю «воду».

Как правильно проверить наличие повторяющихся записей при использовании ToDictionary?

8
задан Bryan 29 March 2012 в 20:32
поделиться