3

私は従業員のリストを持っており、それらすべてに DisplayList と呼ばれるネストされた別のリストがあります。

現在、すべての従業員が同じ量の DisplayFields を持っているわけではありません。そのため、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 は正しくないと思いますが、何が問題なのかわかりません。

どんな助けでも大歓迎です!

ありがとう

4

1 に答える 1

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

var maxEmp = employeeList.Where(e=>e.EmployeeDisplayCollection.Count == max)
                         .ToList()
于 2012-04-25T09:34:43.470 に答える