Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从列表中获取不同的对象<;MyUser>;基于一个属性,用户名_C#_Linq - Fatal编程技术网

C# 从列表中获取不同的对象<;MyUser>;基于一个属性,用户名

C# 从列表中获取不同的对象<;MyUser>;基于一个属性,用户名,c#,linq,C#,Linq,我在代码中定义了一个MyUser对象,它有几个属性 public class MyUser { public Guid UserId; public string EmailAddress; public string UserName; } 然后我有了这些MyUser对象的列表 List<MyUser> userList List用户列表 如何消除仅基于每个myObject的一个属性(如用户名)的所有重复项 所以基本上,如果我有100个MyUser对象

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

public class MyUser
{
    public Guid UserId;
    public string EmailAddress;
    public string UserName;
}
然后我有了这些MyUser对象的列表

List<MyUser> userList
List用户列表
如何消除仅基于每个myObject的一个属性(如用户名)的所有重复项

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


我认为我可以用LINQ <强>不同的< /强>来做,但是区别不允许我告诉它只考虑一个属性。

< >代码> GROPBI/<代码> <代码> USERID < /代码>,然后取每个组的第一个:

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

谢谢@Aomine这正是我想要的!