我有以下物品
public class Club { private List_Members = new List (); public int Id { get; set; } public string Name { get; set; } public List Members { get { return _Members; } set { _Members = value; } } }
现在我有一个List
名为的clubsList,我希望生成一个List
应包含唯一成员列表的内容.
例如,约翰史密斯可能是俱乐部A和俱乐部B的成员,因此他将成为两个俱乐部的会员名单.但是,我只想在我的列表中使用John Smith一次.
我正在尝试使用LINQ生成此列表,我很感激它的一些帮助.
var uniqueMembers = clubsList.Select(x => x.Members).ToList()...???
Dennis.. 6
SelectMany
并且Disctinct
是一种方式:
clubsList .SelectMany(_ => _.Members) .Distinct() .ToList();
但要强制使用distinct来正常工作,你可能需要使用相等比较器进行重载,因为默认情况下Distinct
比较引用类型的引用,我不知道如何Club.Members
填充
(我假设你不想覆盖Equals
和GetHashCode
for Person
).
SelectMany
并且Disctinct
是一种方式:
clubsList .SelectMany(_ => _.Members) .Distinct() .ToList();
但要强制使用distinct来正常工作,你可能需要使用相等比较器进行重载,因为默认情况下Distinct
比较引用类型的引用,我不知道如何Club.Members
填充
(我假设你不想覆盖Equals
和GetHashCode
for Person
).