字典c#列表的字典
本文关键字:字典 列表 | 更新日期: 2023-09-27 18:21:07
我想要这样的字典列表的字典:
Dictionary <string, List<Dictionary<string,string>> field;
但视觉工作室发送给我的错误:
错误CS0305使用泛型类型"Dictionary"需要2个
如何解决这个错误(或者更好地解决我的问题)?
末尾缺少一个括号:
Dictionary <string, List<Dictionary<string,string>>> field;
TL;DR:您在剥离结束时丢失了一个>
,但您应该使用更好的解决方案
您应该尽量避免在其他泛型类型中包含泛型类型等复杂的数据结构,而是创建自己的class
。
例如:
一个Dictionary
,从一个人的名字到他所属的电话公司的Dictionary
,再到他在每个公司的电话号码,看起来就像:
Dictionary<string, Dictionary<string, string>> nameToCompanyToNumber;
接下来要做的事情比创建更可读的自定义classes
更困难:
class Person
{
Dictionary<string, string> companyToNumber;
public string GetPhone(string company)
{
return companyToNumber[company];
}
}
这将使您的代码更加清晰:
List<Person> people;
people.First().GetPhone("AT&T");
代替:
nameToCompanyToNumber["SomePerson"]["AT&T"];
这将要求您每次都尝试了解发生了什么,并使代码更难维护,这就是OOP的全部内容。
至于你的编译错误,你最后缺少了一个>
:
Dictionary<string, List<Dictionary<string,string>>> field;
像这样的字典很管用。尽管您似乎错过了一个结束>,这可能会导致您的问题。
因此:
Dictionary <string, List<Dictionary<string,string>> field;
应为:
Dictionary <string, List<Dictionary<string,string>>> field;
但有一件事来自经验。如果您有如此复杂的数据类型,并且它不是快速而肮脏的,那么您应该重新考虑并考虑使用类。
至少在以后,类将比这样一个复杂的字典更易于维护,也不那么令人困惑(不仅在以后,而且在其他人必须修改您的代码时)。