私はasp.net C#
Webアプリケーションを作成しています。 私は 'table1
'という名前のメモリ内データテーブルを持ち、 'country
'、 'productId
'、 'productQuantity
'という3つのカラムを持っています。 最初の列 'country
'を固定列にし、動的数値と列名を 'product_1
'、 'product_2
'とする新しいテーブル( 'table2
'とします)を取得するには、そのテーブルをピボットします。 'table1
'に存在する製品の総数に応じて 'product_n
'、 最初の列 'country
'には国名が含まれている必要があります。 ダイナミックに生成された列「product_1
」、「product_2
」、...、「product_n
」私は書くためのLINQクエリ式を使用している指定国linqツリー式を使用して動的列を持つピボットテーブルを作成する方法
に各特定の製品のためにselledされたproductQuantity
が含まれている必要がありますコード;問題は、私はハードコードの名前を製品のどちらの値もできないということです。私はどのくらいの製品がデータテーブルに存在するか予測できません。
view example image of the two tables table1 and table2
:i「はtable1
」のように見え、どのように「
table2
」のように見える必要がありますどのように例を与えている
var query = table1.AsEnumerable()
.GroupBy(c => c.country)
.Select(g => new
{
country = g.Key,
product_1 = g.Where(c => c.productId == "a30-m").Select(c => c.productQuantity).FirstOrDefault(),
product_2 = g.Where(c => c.productId == "q29-s").Select(c => c.productQuantity).FirstOrDefault(),
.
.
.
product_n = g.Where(c => c.productId == "g33-r").Select(c => c.productQuantity).FirstOrDefault()
});
:今、私は次の式を使用して結果をテストしてるため
誰でも、linqツリー式または別のlinqメソッドを使用して動的列を持つピボットテーブルを作成するためのソリューションを見つけるのを手伝ってください。 ご協力いただければ幸いです。
ヘルプをお待ちしております... – user598956