私はasp.net C#Webアプリケーションを書いています。' '、' '、' ' の3table1つの列を持つ' ' という名前のメモリ内データテーブルがあります。そのテーブルをピボットして、最初の列 ' ' を固定列とし、動的な番号と列名 ' '、' '、...、' ' に従って新しいテーブル (' ' と仮定) を取得したい' ' に存在する製品の総数。最初の列 ' ' には国名を含める必要があります。動的に生成された列 ' '、' '、...、' 'には、指定された国で特定の製品ごとに販売された が含まれている必要がありますcountryproductIdproductQuantitytable2countryproduct_1product_2product_ntable1countryproduct_1product_2product_nproductQuantity
私は Linq クエリ式を使用してコードを記述しています。問題は、製品の名前も値もハードコーディングできないことです。データテーブルに存在する製品の数を予測できません。今のところ、次の式を使用して結果をテストしています。
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()
});
table1「 」がどのように見えるか、「 」がどのように見えるtable2必要があるかについての例を示しています。
table1 と table2 の 2 つのテーブルのサンプル画像を表示
linqツリー式または別のlinqメソッドを使用して動的列を持つピボットテーブルを作成するための解決策を見つけるのを手伝ってくれませんか? どんな助けでも大歓迎です。