#c# #linq
#c# #linq
Вопрос:
Кажется, что это совершенно просто, но сегодня утром мой мозг работает не очень хорошо, и, похоже, я не могу найти хорошее поисковое выражение для ответа.
У меня есть IList<IDictionary<string, string>>
, и я хочу получить IList<string>
, содержащий отдельный список уникальных имен ключей в моей коллекции объектов словаря. Какой быстрый и элегантный способ сделать это? Я уверен, что ответ прост, я просто не могу об этом думать.
Ответ №1:
var allKeys = from dict in list
from key in dict.Keys
select key;
var distinctKeys = allKeys.Distinct().ToList();
Или, если вы предпочитаете лямбда-синтаксис:
var distinctKeys = list.SelectMany(dict => dict.Keys).Distinct().ToList();
Комментарии:
1. Хах, я знал, что для меня это будет «духовый» момент. Спасибо!
Ответ №2:
list.SelectMany(d => d.Keys).Distinct()