Получение пересечения элементов из группы элементов после группировки

#c# #linq

#c# #linq

Вопрос:

В результате выражения Linq-to-objects соединения 4 Listlt;Tgt; я получаю следующую группировку

 select new { id = o.Id, items = itm }  

где items находится IEnumerablelt;Tgt;

То, что мне нужно, чтобы выбраться из этого, — это, по сути Intersect , из items . (предполагая groupped , что это материализованный список)

 var result = groupped[0].items; for(int i = 1; i lt; groupped.Count; i  )  result = result.Intesect(groupped[i].items, lt;some comparergt;);  

Есть ли лучший способ, чем этот ^^?

Комментарии:

1. Мне кажется кратким и читаемым. Единственное, что вы могли бы рассмотреть, — это добавление OrderBy(x =gt; x.Count) для ваших групп. Таким образом, вы начнете с самых маленьких групп, и у вас будет меньше сравнений в целом.