根据一个属性,用户名从List <myuser>获取DISTINCT对象

时间:2018-12-23 00:15:07

标签: c# linq

我在代码中定义了一个MyUser对象,它具有多个属性...

public class MyUser
{
    public Guid UserId;
    public string EmailAddress;
    public string UserName;
}

然后我有这些MyUser对象的列表。...

List<MyUser> userList

如何仅基于每个myObject的一个属性(例如UserName)来消除所有重复项?

因此,基本上,如果我有100个这些MyUser对象的列表,我只希望每个UserName出现一次。因此,如果UserName出现多次,请删除重复项,并且每个UserName仅保留一个对象。最后,我将得到一个仅包含唯一用户名的列表(以及其他属性)。

我以为我可以使用LINQ Distinct 来做到这一点,但是Distinct不允许我告诉它仅考虑一个属性。

1 个答案:

答案 0 :(得分:0)

GroupByUserId,然后参加每个小组的第一个会议:

List<MyUser> result = userList.GroupBy(x => x.UserId)
                              .Select(x => x.First())
                              .ToList();