我有一个关于方法IGrouping的问题Select()。
IGrouping
Select()
假设我有IEnumerable<IGrouping<int, smth>>这种方式:
IEnumerable<IGrouping<int, smth>>
var groups = list.GroupBy(x => x.ID);
哪里list是List<smth>。
list
List<smth>
现在我需要以IGrouping某种方式将每个值传递给另一个列表:
foreach (var v in structure) { v.ListOfSmth = groups.Select(...); // <- ??? }
任何人都可以建议如何在这种情况下List<smth>从 a 中获取值 ( )吗?IGrouping<int, smth>
IGrouping<int, smth>
由于IGrouping<TKey, TElement>implements IEnumerable<TElement>,您可以使用SelectMany将所有IEnumerables后面的IEnumerable所有内容放在一起:
IGrouping<TKey, TElement>
IEnumerable<TElement>
SelectMany
IEnumerables
IEnumerable
List<smth> list = new List<smth>(); IEnumerable<IGrouping<int, smth>> groups = list.GroupBy(x => x.id); IEnumerable<smth> smths = groups.SelectMany(group => group); List<smth> newList = smths.ToList();
这是构建/运行的示例:https ://dotnetfiddle.net/DyuaaP