使用C#中的LINQ获取List <T>中的不同属性值的数量

Vah*_*hid 5 c# linq group-by list distinct

在列表中List<MyClass> ListOfMyClasses,如何GroupId使用LINQ 获取有多少不同的属性值?

public class MyClass
{
     public int GroupId;
}
Run Code Online (Sandbox Code Playgroud)

例如,假设我们有这个列表:

ListOfMyClasses: {MyClass1 (GroupId = 1), MyClass2 (GroupId = 3), MyClass3 (GroupId = 1)}
Run Code Online (Sandbox Code Playgroud)

这里我们应该得到结果为2(GroupId的两个不同的数字).

sst*_*tan 11

以下是使用以下方法的一种方法Distinct:

ListOfMyClasses.Select(t => t.GroupId).Distinct().Count()
Run Code Online (Sandbox Code Playgroud)

或者您也可以使用GroupBy:

ListOfMyClasses.GroupBy(t => t.GroupId).Count()
Run Code Online (Sandbox Code Playgroud)