2013-02-26 42 views
0

所有,骨料LINQ的函數

我有一個列表,其具有Col1中,Col2中,COL3,SumNumberColumn因爲每個元件的特性的本地數據。我想做的事情很簡單就是SQL,但我正在努力用Linq來完成同樣的事情。我想要做的是從List中執行一個GroupBy,它將忽略Col3中的內容並聚合SumNumberColumn,但仍返回IEnumerable的MyDataType。

即在SQL我會做

Select Col1, Col2, null as Col3, Sum(SumNumberColumn) as SumNumberColumn from MyTable GroupBy Col1, Col2; 

使用LINQ,我想要做的(僞代碼)

List<MyDataType> lstAgg = lst.GroupBy(a => {a.Col1, a.Col2}).Select(a => new {a.Col1, a.Col2, Col3 = null, sum(a.Col4) }).ToList(); //lst is also a List<MyDataType>. 

什麼是完成這一任務的最佳方法?

編輯:我已經看到了多個如何實現這個和返回匿名類型的例子,但我真的需要返回一個MyDataType元素的列表。

回答

2

您可以返回List<MyDataType>

var lstAgg = lst.GroupBy(a => new { a.Col1, a.Col2}) 
       .Select(a => new MyDataType() 
           { 
            Col1 = a.Key.Col1, 
            Col2 = a.Key.Col2, 
            Col3 = null, 
            SumNumberColumn = a.Sum(e => e.SumNumberColumn) 
           }) 
       .ToList(); 
+0

真棒。謝謝。 – William 2013-02-26 22:16:18