如何初始化包含字典列表的字典?我开始在C#中做一些开发,但在这里遇到了问题。通常我在Python中开发这样的东西很容易实现(至少对我而言),但我不知道如何在C#中实现:我想使用通用集合创建一个包含字典列表的字典,像这样:{“alfred”,[{“age”,20.0},{“height_cm”,180.1}],“芭芭拉”,[{“age”,18.5},{“height_cm”,167.3}],“克里斯",[{"age",39.0},{"height_cm",179.0}]}我开始于:usingSystem.Collections.Generic;Dictionary人;但是我想把上面的三个记录一下子插入到人群中。我不断收到语法错误。有人能给我解决方案吗?编辑:谢谢大家-我没想到会在这么短的时间内收到这么多深思熟虑的答案!你太棒了!您可以使用字典初始化。不如Python优雅,但可以忍受:{"age",18.5},{"height_cm",167.3}}},{"chris",newDictionary{{"age",39.0},{"height_cm",179.0}}}};然后:人[“阿尔弗雷德”][“年龄”];另请注意,此结构需要Dictionary>而不是Dictionary[]>。使用此构造也可能有点像PITA,并且会危及代码的可读性和编译时类型安全性。在.NET中,最好像这样使用强类型对象:publicclassPerson{publicdoubleAge{get;放;}公共字符串名称{得到;放;}publicdoubleHeightCm{get;放;}}然后:varpersons=new[]{newPerson{Name="alfred",Age=20.0,HeightCm=180.1},newPerson{Name="barbara",Age=18.5,HeightCm=180.1},newPerson{名字=“克里斯”,年龄=39.0,HeightCm=179.0},};然后,您可以使用LINQ获取所需的任何信息:doublebarbarasAge=(frompinpersonswherep.Name=="barbara"selectp.Age).First();请注意,使用集合不会像哈希表查找那样快,但根据您在性能方面的需求,您也可以使用它。恕我直言,在c#中一种更优雅的方式,为了避免字典,c#有比这更好的选择,是创建一个类(或结构),如PersonpublicclassPerson{publicPerson(){}publicstringName{get;set;}publicintAge{get;set;}publicdoubleHeight{get;set;}}并将这些对象放入实现IEnumerablepublicList的通用列表或集合中;并使用Linq获取你想要的varpersonToLookfor=frompinpeoplewherep.Name=="somename"selectp;你可以很容易地做到这一点:Dictionary>dict=newDictionary>(){{"alfred",newDictionary(){{"age",20.0},{"height":180.1}}},{"barbara",newDictionary(){{"age",18.5},{"height":167.3}}}};你最好使用类型化的,或者使用ExpandoObject来提供对字典的类型化语法访问。以上就是C#学习教程:如何初始化包含字典列表的字典?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注—Dictionarydict=newDictionary(){{"alfred",newPerson{age=20.0,height=180.1}},{"芭芭拉",新人{age=18.5,height=167.3}}};本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: