林克合并列表
本文关键字:列表 合并 林克 | 更新日期: 2023-09-27 18:37:14
我的类:
public class Foo
{
public int A { get; set; }
public List<Bar> Bars { get; set; }
}
我有IEnumerable<Foo>
.我想按 A 分组List<Foo>
并获取条形列表,该列表包含分组的条形图中的所有元素。
所以最终的 Foo.Bars 应该包含组 Bar 的所有元素
可以使用 linq 吗?
var result = foos.GroupBy(f => f.A)
.SelectMany(grp => grp.Select(f => f.Bars));
正如 Rawling 所提到的,这返回的不是IEnumerable<Foo>
,所以试试这个:
IEnumerable<Foo> result =
foos.GroupBy(f => f.A)
.Select(grp => new Foo() {
A = grp.Key,
Bars = grp.SelectMany(ff => ff.Bars).Distinct().ToList()
});
我不确定您是否想要一个不同的Bars
列表。 请注意,您可能需要覆盖类 Bar
中的Equals
和GetHashCode
。