具有ICollection值的C#IDictionary,不公开实现细节
我正在使用某种集合类型的值设置一个字典,如下所示:具有ICollection值的C#IDictionary,不公开实现细节,c#,generics,collections,covariance,C#,Generics,Collections,Covariance,我正在使用某种集合类型的值设置一个字典,如下所示: IDictionary<string, ICollection<decimal>> goodPrices = new Dictionary<string, List<decimal>>(); i词典商品价格= 新字典(); 但是,这行代码导致编译错误,即无法将右侧隐式转换为左侧。显然,以下行不会产生错误: IDictionary<string, List<decimal&
IDictionary<string, ICollection<decimal>> goodPrices =
new Dictionary<string, List<decimal>>();
i词典商品价格=
新字典();
但是,这行代码导致编译错误,即无法将右侧隐式转换为左侧。显然,以下行不会产生错误:
IDictionary<string, List<decimal>> goodPrices =
new Dictionary<string, List<decimal>>();
i词典商品价格=
新字典();
那么,在不公开集合的底层实现的情况下,将“goodPrices”声明为一组字符串集合对的正确方法是什么呢
IDictionary<string, ICollection<decimal>> goodPrices = new Dictionary<string, ICollection<decimal>>();
goodPrices.Add("myString", new List<decimal>() { /* my values */ });
IDictionary goodPrices=new Dictionary();
Add(“myString”,newlist(){/*myvalues*/});
这个怎么办:
IDictionary<string, ICollection<decimal>> goodPrices = new Dictionary<string, ICollection<decimal>>();
goodPrices.Add("myString", new List<decimal>() { /* my values */ });
IDictionary goodPrices=new Dictionary();
Add(“myString”,newlist(){/*myvalues*/});
您可以始终执行newdictionary()
操作,然后将List
s分配给字典键,例如goodPrices[“test”]=newlist{3.30m}
…您可以始终执行newdictionary()
,然后将List
s分配给字典键,例如goodPrices[“test”]=newlist{3.30m}代码>…啊,当然!你的答案和@Patryk的答案都是正确的选择。我后来发现了以下关于隐式转换失败的根本原因的帖子:啊,当然!你的答案和@Patryk的答案都是正确的选择。我后来发现了以下关于隐式转换失败的根本原因的帖子: