我尝试(使用LINQ)来堆叠相同类型的元素列表,然后递增一个匿名属性。
ElementA
ElementA
ElementB
ElementB
ElementB
ElementC
成为一个暴露元素和数量的匿名对象。
ElementA (Property Qty = 2)
ElementB (Property Qty = 3)
ElementC (Property Qty = 1)
使用LINQ有什么优雅的方法吗?
答案 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>
可以执行的任何操作。