2012-06-13 96 views
0

Model如下列表:的LINQ集團在lambda表達式

Id     Name 
---------------------------------------------------- 
    1     john 
    1     john 
    1     john 
    2     jennifer 
    2     jennifer 
    3     smith 

我想組Model顯示以下結果

Id     Name 
---------------------------------------------------- 
    1     john 
    2     jennifer 
    3     smith 

回答

3

如果Model實現IEquatable<Model>則是微不足道:

var noDuplicates = list.Distinct(); 

如果對012沒有意義來實現該接口,您可以使用Distinctthis overload,它允許您在側面指定相等條件。 IEqualityComparer<T>的文檔舉例說明了如何實現此類功能。

0
   ILookup<int, string> lookup = 
       list 
       .ToLookup(p => p.Id, 
          p => p.Name); 

      foreach (IGrouping<int, string> group in lookup) 
      { 
       Console.WriteLine(group.Key); 
       foreach (string name in group) 
        Console.WriteLine(" {0}", name); 
      } 
0

從型號 V組V通過v.id爲G 選擇G以

+0

@Morteza ..感謝您的回答,但要確保在回答有單線或更低,那麼它應該是一個註釋,希望你有我:) – swiftBoy