2013-11-04 64 views
0

我嘗試(使用LINQ)堆棧,其是相同類型的,然後遞增一個匿名屬性元素的列表相同類型的..堆棧列表元素其是基於特定屬性

ElementA 
ElementA 
ElementB 
ElementB 
ElementB 
ElementC 

成爲一個匿名的對象,揭露的元素和數量..

ElementA (Property Qty = 2) 
ElementB (Property Qty = 3) 
ElementC (Property Qty = 1) 

有沒有什麼優雅的方式來做到這一點與LINQ?

+0

GroupBy怎麼樣? –

+0

有沒有辦法根據GroupBy返回元素的第二個列表(匿名)?你有沒有使用GroupBy的例子? – Rushino

+0

還有一些例子[這裏](http://stackoverflow.com/questions/7325278/group-by-in-linq)。 – R0MANARMY

回答

1

不確定這是否有效,但絕對有可能。東西沿線

var totals = from e in <element list> 
      group e by e.<property> into g 
      select new { 
       Property = g.Key, 
       Count = g.Count() 
      } 

會給你一個屬性的計數。

在這種情況下gIGrouping<out TKey, out TElement>類型,從IEnumerable<T>繼承,因此它可以做任何事情IEnumerable<T>可以做到的。

+0

太棒了!我不知道我們可以用Count來做這件事。那是缺少的。我嘗試了很多使用Sum的combinaison,但我無法得到任何東西。 – Rushino