製品名と対応する価格を含む辞書オブジェクトがあります。
var products = new List<Dictionary<string, decimal>>()
{
new Dictionary<string, decimal> {{"product1", 10}},
new Dictionary<string, decimal> {{"product2", 20}},
new Dictionary<string, decimal> {{"product3", 30}}
};
次に、これをループして、製品ごとにいくつかの計算を適用します。
foreach (var product in products)
{
foreach (KeyValuePair<string, decimal> kvp in product)
{
var result = GetRatePerProduct(kvp.Key) * kvp.Value;
}
}
GetRatePerProductは単に製品名を受け取り、10 進数のレートを返します。
このループに基づいて、計算結果が、製品ごとの列、Product1、Product2、Product3... を含む orders テーブルに挿入されます。
したがって、ループの後、テーブルは次のようになります。
Product1 Product2 Product3 ...
12 24 36
次のような別の辞書を作成することを考えました。
var results = new List<Dictionary<string, decimal>>();
forループ内でデータを入力し、ループ外でこのディクショナリを使用してデータをSQLデータベースに挿入します。この例では製品の数を減らしましたが、52 個の製品があり、この数は決して変わりません。
このアプローチは正しいですか?おそらくLinqを使用して、これを行うより良い方法はありますか? Linqでこれを行うという点で、正しい方向に私を向けることができますか?
ありがとう