私はasp.net C#
Webアプリケーションを書いています。' '、' '、' ' の3table1
つの列を持つ' ' という名前のメモリ内データテーブルがあります。そのテーブルをピボットして、最初の列 ' ' を固定列とし、動的な番号と列名 ' '、' '、...、' ' に従って新しいテーブル (' ' と仮定) を取得したい' ' に存在する製品の総数。最初の列 ' ' には国名を含める必要があります。動的に生成された列 ' '、' '、...、' 'には、指定された国で特定の製品ごとに販売された が含まれている必要がありますcountry
productId
productQuantity
table2
country
product_1
product_2
product_n
table1
country
product_1
product_2
product_n
productQuantity
私は 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メソッドを使用して動的列を持つピボットテーブルを作成するための解決策を見つけるのを手伝ってくれませんか? どんな助けでも大歓迎です。