我有一份员工列表,所有员工都有另一个嵌套列表,名为DisplayList。
现在并非所有员工都拥有相同数量的DisplayField。所以我希望得到那些具有最高DisplayFields的人,以便我可以将每个人都纳入显示器。
目前我有以下内容: -
int iMaxDisplayCount = 0;
foreach (Employee employee in employeeList)
{
int iDisplayCount = employee.EmployeeDisplayCollection.Count;
if (iDisplayCount > iMaxDisplayCount)
iMaxDisplayCount = iDisplayCount;
}
var employees = employeeList.GroupBy(p => p.EmployeeDisplayCollection.Count == iMaxDisplayCount).Select(g => g.ToList());
foreach(var employeeHighList in employees)
{
foreach (var employee in employeeHighList)
{
}
}
然而由于某种原因,我得到了employeeHighList中的所有员工,而不仅仅是那些具有最高显示数量的员工。
我认为GroupBy不正确,但不知道它有什么问题。
非常感谢任何帮助!
由于
答案 0 :(得分:10)
var max = employeeList.Max(e=>e.EmployeeDisplayCollection.Count);
var maxEmp = employeeList.Where(e=>e.EmployeeDisplayCollection.Count == max)
.ToList()