0

全て、

各要素のプロパティとして Col1、Col2、Col3、SumNumberColumn を持つ List にローカル データがあります。私がやろうとしているのは単純な SQL ですが、Linq で同じことを達成するのに苦労しています。私がやりたいことは、List から、Col3 の内容を無視して SumNumberColumn を集計する GroupBy を実行しますが、それでも MyDataType の IEnumerable を返すことです。

つまり、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 要素のリストを返す必要があります。

4

1 に答える 1

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();
于 2013-02-26T22:11:27.630 に答える