0
ご覧のとおり、ダイナミックアレイのダイナミックアレイを含むディクショナリを初期化しようとしています。誰かが私にこれを行うよりクリーンな方法を与えることができますか? forループでこれを行う方法が必要です。C#ダイナミックアレイのダイナミックアレイを含むディクショナリの初期化
// Sizes: 20X, 40X, W, M, WM, Other
sizesDict.Add(eDate, new dynamic[6] { // Date, Size
new dynamic[6] { // Data
/* RangeMax */
new List<decimal> { r.rateEvalDLoc.rateEvalOLoc.charge.Total },
/* RangeMin */
new List<decimal> { r.rateEvalDLoc.rateEvalOLoc.charge.Total },
/* OriginMax */
new List<string> { r.rateEvalDLoc.originLoc.LocationName.ToString() },
/* OriginMin */
new List<string> { r.rateEvalDLoc.originLoc.LocationName.ToString() },
/* DestinationMax */
new List<string> { r.destinationLoc.LocationName.ToString() },
/* DestinationMin */
new List<string> { r.destinationLoc.LocationName.ToString() }
},
new dynamic[6] { // Data
/* RangeMax */
new List<decimal> { r.rateEvalDLoc.rateEvalOLoc.charge.Total },
/* RangeMin */
new List<decimal> { r.rateEvalDLoc.rateEvalOLoc.charge.Total },
/* OriginMax */
new List<string> { r.rateEvalDLoc.originLoc.LocationName.ToString() },
/* OriginMin */
new List<string> { r.rateEvalDLoc.originLoc.LocationName.ToString() },
/* DestinationMax */
new List<string> { r.destinationLoc.LocationName.ToString() },
/* DestinationMin */
new List<string> { r.destinationLoc.LocationName.ToString() }
},
new dynamic[6] { // Data
/* RangeMax */
new List<decimal> { r.rateEvalDLoc.rateEvalOLoc.charge.Total },
/* RangeMin */
new List<decimal> { r.rateEvalDLoc.rateEvalOLoc.charge.Total },
/* OriginMax */
new List<string> { r.rateEvalDLoc.originLoc.LocationName.ToString() },
/* OriginMin */
new List<string> { r.rateEvalDLoc.originLoc.LocationName.ToString() },
/* DestinationMax */
new List<string> { r.destinationLoc.LocationName.ToString() },
/* DestinationMin */
new List<string> { r.destinationLoc.LocationName.ToString() }
},
new dynamic[6] { // Data
/* RangeMax */
new List<decimal> { r.rateEvalDLoc.rateEvalOLoc.charge.Total },
/* RangeMin */
new List<decimal> { r.rateEvalDLoc.rateEvalOLoc.charge.Total },
/* OriginMax */
new List<string> { r.rateEvalDLoc.originLoc.LocationName.ToString() },
/* OriginMin */
new List<string> { r.rateEvalDLoc.originLoc.LocationName.ToString() },
/* DestinationMax */
new List<string> { r.destinationLoc.LocationName.ToString() },
/* DestinationMin */
new List<string> { r.destinationLoc.LocationName.ToString() }
},
new dynamic[6] { // Data
/* RangeMax */
new List<decimal> { r.rateEvalDLoc.rateEvalOLoc.charge.Total },
/* RangeMin */
new List<decimal> { r.rateEvalDLoc.rateEvalOLoc.charge.Total },
/* OriginMax */
new List<string> { r.rateEvalDLoc.originLoc.LocationName.ToString() },
/* OriginMin */
new List<string> { r.rateEvalDLoc.originLoc.LocationName.ToString() },
/* DestinationMax */
new List<string> { r.destinationLoc.LocationName.ToString() },
/* DestinationMin */
new List<string> { r.destinationLoc.LocationName.ToString() }
},
new dynamic[6] { // Data
/* RangeMax */
new List<decimal> { r.rateEvalDLoc.rateEvalOLoc.charge.Total },
/* RangeMin */
new List<decimal> { r.rateEvalDLoc.rateEvalOLoc.charge.Total },
/* OriginMax */
new List<string> { r.rateEvalDLoc.originLoc.LocationName.ToString() },
/* OriginMin */
new List<string> { r.rateEvalDLoc.originLoc.LocationName.ToString() },
/* DestinationMax */
new List<string> { r.destinationLoc.LocationName.ToString() },
/* DestinationMin */
new List<string> { r.destinationLoc.LocationName.ToString() }
}
});
なぜあなたは 'dynamic'を使用していますか?これに対して強力な型を作成し、コードに型安全性を追加することができます。また、各配列に2倍の同じ値を追加します。各配列は、前のものと全く同じです(すべて同じです)。最後になぜリストを単一の値に使うのですか? 'List'と 'List 'の代わりに 'string'や' decimal'を使うのはなぜですか? –
Igor
あなたが表示するように、最も内側の動的配列は常に同じ値で初期化されますか? – gunnerone