массив в словарь - PullRequest
       1

массив в словарь

3 голосов
/ 17 марта 2011

Я пытаюсь получить это _valueAdds = List<ValueAddedItemHelper> в gridItems (Dictionary) с ключом _valueAdds и всеми значениями false. Но я не уверен, как это сделать с Ламдой. Это, как далеко я получил ниже. Мне удалось сделать это с помощью цикла while, но я хотел бы научиться делать это с помощью Lamda

gridItems = new Dictionary<ValueAddedItemHelper, bool>();
gridItems = _valueAdds.Select(k => new { k }).ToArray().ToDictionary(t => t, false);

Ответы [ 6 ]

5 голосов
/ 17 марта 2011
_valueAdds.ToDictionary(t => t, t => false);
1 голос
/ 17 марта 2011

Вам нужно предоставить лямбда-выражение в качестве второго аргумента (или создать делегат другим способом, но лямбда-выражение будет самым простым). Обратите внимание, что вызов ToArray не требуется, равно как и пустой словарь, который вы создаете для начала. Просто используйте:

gridItems = _valueAdds.Select(k => new { k })
                      .ToDictionary(t => t, t => false);

Мне не понятно, почему вы используете здесь анонимный тип, хотя ... в частности, что не будет быть ValueAddedItemHelper. Вам нужна проекция вообще? Возможно просто:

gridItems = _valueAdds.ToDictionary(t => t, t => false);
0 голосов
/ 17 марта 2011

Проблема Select(k => new { k });это создает анонимный тип со свойством k.Всего:

var gridItems = _valueAdds.ToDictionary(t => t, t => false);
0 голосов
/ 17 марта 2011

Что-то вроде

var gridItems = _valueAdds.ToDictionary(k=>k,i=>false);
0 голосов
/ 17 марта 2011

Предполагая, что _valueAdds является IEnumerable<ValueAddedItemHelper>, вы можете сделать это:

gridItems = _valueAdds.ToDictionary(x => x, x => false);
0 голосов
/ 17 марта 2011

Вам не нужен ToArray (). ToDictionary (). Вы можете просто сделать ToDictionary (). И вам не нужна первая строка. Вторая строка создаст и заполнит словарь.

код:

gridItems = _valueAdds.ToDictionary(p => p, p => false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...