我有一個類型的對象的集合,我想要轉換爲不同的類型。這可以用foreach輕鬆完成,但我想弄清楚如何使用Linq的聚合函數來完成它。如何使用Linq的聚合函數添加到列表C#
問題是所有的聚合示例使用類型行字符串或int,它們支持'+'運算符。我希望累加器類型是一個不支持'+'語義的列表。
這裏有一個簡單的例子:
public class DestinationType
{
public DestinationType(int A, int B, int C) { ... }
}
var set = from item in context.Items
select new { item.A, item.B, item.C };
var newSet = set.Aggregate(new List<DestinationType>(),
(list, item) => list.Add(new DestinationType(item.A, item.B, item.C)));
的問題是,名單<>。新增返回void。 Aggregate的第二個參數的返回類型需要是List。
如果我有一個支持「+」類型語義列表類型我可以只讓第二個參數
list + item
但是我找不到支持這種事情任何集合類型。
看起來像這樣應該很容易在Linq中。有沒有辦法?另外,如果我錯過了一個更簡單的方法,我也很想了解這一點。謝謝!
謝謝所有偉大的答案! Sam和Talljoe的答案使用Linq最簡單地完成了。 Thx再次! – Slaggg 2009-06-13 17:50:54