1

結果を として出力Linqする group-by on を適用するクエリを書きたいと思います。DataTableDataTable

var結果を型として返すこのコードを試しましたが、結果をDataTable

var query = from row in dt.AsEnumerable()
            group row by row.Field<DateTime>("ExpDate").Year into grp
            select new
            {
                Years = grp.Key,
                RSF = grp.Sum(r => r.Field<decimal>("SpaceRSF"))
            };

適切な答えを見つけるのを手伝ってください。

4

2 に答える 2

2

方法を見てください:CopyToDataTableを実装する-このトピックでは、DataRow以外のタイプのジェネリックパラメーターTを受け入れる2つのカスタムCopyToDataTable拡張メソッドを実装する方法について説明します。

その記事()のコードを使用するだけでObjectShredder<T>、次の結果が得られます。

DataTable table = query.CopyToDataTable();
于 2012-11-21T11:26:48.280 に答える
0

わかりました、これによると

select new
            {
                Years = grp.Key,
                RSF = grp.Sum(r => r.Field<decimal>("SpaceRSF"))
            };

code which return result as var typeYearsとの2つのプロパティを持つオブジェクトのコレクションを効果的に返しますRSF
代わりにデータテーブルが必要な場合は、すべてのデータをデータテーブルに入れるコードを記述します。基本的に、次のようになります。

DataTable table = new DataTable();
table.Columns.Add("Years");
table.Columns.Add("RSF");
foreach(var item in query)
{
     table.Add(item.Years, items.RSF)
}

お役に立てれば。

于 2012-11-21T11:26:17.377 に答える