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'?您可以爲此創建強類型,併爲代碼添加類型安全性。你也在每個數組中添加相同的值2x,並且每個數組都是前一個數組的精確副本(它們都是相同的)。最後,爲什麼你使用單值列表,爲什麼不使用'string'或'decimal'而不是'List'和'List '? –
Igor
最內層的動態數組是否總是用相同的值初始化,如你所示? – gunnerone