基于特定属性的堆栈列表元素是相同类型的

时间:2013-11-04 17:54:34

标签: c# linq c#-4.0

我尝试(使用LINQ)来堆叠相同类型的元素列表,然后递增一个匿名属性。

ElementA
ElementA
ElementB
ElementB
ElementB
ElementC

成为一个暴露元素和数量的匿名对象。

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

使用LINQ有什么优雅的方法吗?

1 个答案:

答案 0 :(得分:1)

不确定这是否有效,但绝对可行。

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

会让你了解这些属性。

在这种情况下,g属于IGrouping<out TKey, out TElement>类型,它继承自IEnumerable<T>,因此它可以执行IEnumerable<T>可以执行的任何操作。