2012-04-25 21 views
1

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

すべての従業員が同じ額のDisplayFieldを持っているわけではありません。ですから、最高のDisplayFieldを持っている人を募集して、全員をディスプレイに組み込むことができます。以下、私が持っている瞬間

: -

  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

あなたの質問は本当に明確ではありません。 「すべての人をディスプレイに組み込むことができる」とはどういう意味ですか? http://tinyurl.com/so-hintsを読んで質問を編集して、より明確にしてください。 –

答えて

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

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

@AdamHouldsworth、はい、私はEmployeeDisplayCollectionが常にインスタンスであることを願っています –

+0

こんにちはAdrian EmployeeDisplayCollectionは、各従業員に関連する表示変数のリストです。だから、それはすべての従業員のためのinstaceはいです。このLINQのおかげで再び!私は本当に解決が好きです – Johann

関連する問題