Есть ли способ свести .Net ILookup <TKey, TElement> в список <TElement>? - PullRequest
13 голосов
/ 24 февраля 2010

Существует ли быстрый способ получения плоского значения List<TElement> из ILookup<TKey, TElement>, созданного из расширения IEnumerable<TElement>?


Обновлено с примером

List<int> list = new List<int>();
var lookup = list.ToLookup(key => key);
list = lookup.?? // How to convert the lookup back to the list

Ответы [ 2 ]

21 голосов
/ 04 марта 2010
lookup.SelectMany( x => x ).ToList()

Однако преобразование в ILookup и обратно, скорее всего, изменит порядок.

0 голосов
/ 24 февраля 2010

Не уверен, что это то, что вам нужно. Для Dictionary<> до List<>

List<TElement> list iLookUp.Values.ToList<TElement>();

от List<> до Dictionary<>

var dict = list.Cast<TElement>().ToDictionary(t => t.Id, t => t.Description);
...