如何检查每个列表成员的属性值是否相同

use*_*923 12 c# linq

所以说我有一个学生有一个属性,int Age.现在,如果我有List<Student> students,我如何检查列表中所有学生的年龄是否相等?

cuo*_*gle 29

您可以使用All方法检查,大概您的列表中有学生:

var firstStudent = students.First();
students.All(s => s.Age == firstStudent.Age);
Run Code Online (Sandbox Code Playgroud)

  • 不过,首先将"First"提升出去可能会更好 (2认同)

Raw*_*ing 8

如果你想在一个查询中执行此操作,而不是两个(这通常是不好的做法),

bool allAgesAreTheSame = (students.Select(s => s.Age).Distinct().Count() < 2);
Run Code Online (Sandbox Code Playgroud)

会为你做的.

这也将在你根本没有学生的琐碎案例中返回,而不是抛出异常.(你可以做== 1而不是< 2在琐碎的情况下返回false.)