我是C#的新手,我正在尝试定义一个包含以下内容的词典:
作为关键:
一个字符串
作为价值:
字符串列表。
我能想出什么(不完全确定它是对的?)是这样的:
var peopleWithManyAddresses = new Dictionary<string, List<List<string>>> {};
现在,如果以上是正确的,我想知道如何填充{em>一个项peopleWithManyAddresses
。
Intellisense告诉我,以下内容只有在#&#34; Lucas&#34;:
之前才是正确的peopleWithManyAddresses.Add("Lucas", { {"first", "address"}, {"second", "address"} });
它的正确语法是什么?
P.S。我知道我可以上课,但出于学习目的,我现在想这样做。
答案 0 :(得分:4)
要初始化List<List<string>>
对象,必须使用new List<List<string>> { ... }
语法。要初始化每个子列表,您必须使用类似的语法,即new List<string> {... }
。这是一个例子:
var peopleWithManyAddresses = new Dictionary<string, List<List<string>>>();
peopleWithManyAddresses.Add("Lucas", new List<List<string>>
{
new List<string> { "first", "address" },
new List<string> { "second", "address" }
});
答案 1 :(得分:3)
您的初始化声明是正确的。
使用C#6.0,您可以使用以下语法填充一个项目:
var dict = new Dictionary<string, List<List<string>>>
{
["Lucas"] = new[]
{
new[] { "first", "address" }.ToList(),
new[] { "second", "address" }.ToList(),
}.ToList()
};
您可以使用以下内容填充两个项目:
var dict = new Dictionary<string, List<List<string>>>
{
["Lucas"] = new[]
{
new[] { "first", "address" }.ToList(),
new[] { "second", "address" }.ToList(),
}.ToList(),
["Dan"] = new[]
{
new[] { "third", "phone" }.ToList(),
new[] { "fourth", "phene" }.ToList(),
}.ToList(),
};
如果您想稍后添加更多数据,可以执行以下操作:
dict["Bob"] = new[]
{
new[] { "fifth", "mailing" }.ToList(),
new[] { "sixth", "mailing" }.ToList(),
}.ToList();
答案 2 :(得分:1)
首先我创建与List
分开的Dictionary
:
List<string> someList = new List<string<();
var otherList = new List<List<string>>();
var peopleWithManyAddresses = new Dictionary<string, List<List<string>>> {};
首先在someList
中添加字符串someList.Add("first");
someList.Add("addresss");
然后在otherList中添加:
otherList.Add(someList);
现在创建新的字符串列表:
var thirdList = new List<string>();
thirdList.Add("second");
thirdList.Add("addresss");
并在其他列表中添加最后一个字符串列表并添加到字典中
otherList.Add(thirdList);
peopleWithManyAddresses.Add("Lucas", otherList);