【发布时间】:2013-12-04 06:35:22
【问题描述】:
我正在使用某种集合类型的值设置一个字典,如下所示:
IDictionary<string, ICollection<decimal>> goodPrices =
new Dictionary<string, List<decimal>>();
但是,这行代码会导致无法将右侧隐式转换为左侧的编译错误。显然,以下行不会产生错误:
IDictionary<string, List<decimal>> goodPrices =
new Dictionary<string, List<decimal>>();
那么在不暴露集合的底层实现的情况下,将“goodPrices”声明为一组字符串-集合对的正确方法是什么?
【问题讨论】:
-
您可以随时使用
new Dictionary<string, ICollection<decimal>>(),然后将Lists 分配给字典键,例如goodPrices["test"] = new List<decimal> { 3.30m };...
标签: c# generics collections covariance