获取嵌套在列表中的最大计数列表

时间:2012-04-25 09:30:15

标签: c# linq c#-4.0 linq-to-objects

我有一份员工列表,所有员工都有另一个嵌套列表,名为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不正确,但不知道它有什么问题。

非常感谢任何帮助!

由于

1 个答案:

答案 0 :(得分:10)

var max = employeeList.Max(e=>e.EmployeeDisplayCollection.Count);

var maxEmp = employeeList.Where(e=>e.EmployeeDisplayCollection.Count == max)
                         .ToList()