2 次元配列を作成しようとしていますが、混乱しています。同僚から、配列リストの辞書内に辞書を作成する必要があると言われましたが、彼は私を助けるために固執することができませんでした。
このようなプログラムをリストする最初の配列を作成できました
+ project 1
+ project 2
+ project 3
+ project 4
このタスクを実行するコードは以下のとおりです。
var PGList = from x in db.month_mapping
where x.PG_SUB_PROGRAM == SP
select x;
//select x.PG.Distinct().ToArray();
var PGRow = PGList.Select(x => new { x.PG }).Distinct().ToArray();
これで垂直方向の配列が処理され、次に水平方向の配列を追加して、各会計期間に費やされた合計金額を確認できるようにする必要があります。したがって、最終的な出力は次のようになりますが、もちろんダッシュはありません。
+ program 1-------100---200---300---400---500---600---700---800---900---1000---1100---1200
+ program 2-------100---200---300---400---500---600---700---800---900---1000---1100---1200
+ program 3-------100---200---300---400---500---600---700---800---900---1000---1100---1200
+ program 4-------100---200---300---400---500---600---700---800---900---1000---1100---1200
foreach を使用して会計期間を循環させようとしましたが、うまくいきません。私は正しい方向に進んでいると思います.SOが何らかのガイダンスを提供するか、少なくとも私が従うべきチュートリアルを提供できることを望んでいました. これまでに書いたコードを下の 2 番目の配列に投稿しました。私は C# と MVC 3 を使用しています。辞書内の辞書ではないことに気付くかもしれません。私の同僚が正しい場合、どうすればそのようなことができるでしょうか。辞書を他の辞書のキーとして使用してこの質問を調べましたが、この状況でどのように使用するのかわかりません。
Dictionary<string, double[]> MonthRow = new Dictionary<string, double[]>();
double[] PGContent = new double[12];
string lastPG = null;
foreach (var item in PGRow)
{
if (lastPG != item.PG)
{
PGContent = new double[12];
}
var MonthList = from x in db.Month_Web
where x.PG == PG
group x by new { x.ACCOUNTING_PERIOD, x.PG, x.Amount } into pggroup
select new { accounting_period = pggroup.Key.ACCOUNTING_PERIOD, amount = pggroup.Sum(x => x.Amount) };
foreach (var P in MonthList)
{
int accounting_period = int.Parse(P.accounting_period) - 1;
PAContent[accounting_period] = (double)P.amount;
MonthRow[item.PG] = PGContent;
lastPG = item.PG;
}
問題を明確に説明したことを願っています。この問題を解決する必要があり、頻繁に確認する必要があるため、必要な説明があればお気軽にお尋ねください。ご協力いただきありがとうございます!