如何使用数据初始化字典>
本文关键字:列表 何使用 初始化 字典 数据 | 更新日期: 2023-09-27 17:56:05
我正在尝试定义一个变量,如下所示:
Dictionary<string, List<string>> dicData = new Dictionary<string, List<string>>().Add("some key",new List<string> {"some string"});
并收到以下错误:
无法完全将 void 类型转换为类型 System.Collection.Generic.Dictionary>
有人可以帮助我理解如何使用内联数据定义字典变量的语法。
为什么要编译此语法?
List<string> lst = new List<string>() { "some String" };
你同时做两件事。 表达式的右侧如下所示:
new Dictionary<string, List<string>>().Add("some key",new List<string> {"some string"});
您正在创建一个词典,并立即向其中添加一个项目。 Add
返回 void,因此您将无法以这种方式捕获对字典的引用。 您希望首先将字典分配给变量,然后添加到该变量中。
或者更好的是,您可以使用集合初始值设定项,就像您已经对List
所做的那样
var dicData = new Dictionary<string, List<string>>
{
["some key"] = new List<string> { "some string"}
};
上面的代码使用 C#6 语法
您有一个语法错误,在 c# 6 中可以执行以下操作:
Dictionary<string, List<string>> dicData = new Dictionary<string, List<string>>()
{
{ "some key", new List<string>() { "some string" } }
};
或:
Dictionary<string, List<string>> dicData = new Dictionary<string, List<string>>()
{
["some key"] = new List<string>() { "some string" },
["some key 2"] = new List<string>() { "some string 2" }
};
不能在同一语句中创建实例并执行 void 方法并将结果分配给变量。您必须首先初始化变量,然后执行该方法:
Dictionary<string, List<string>> dicData = new Dictionary<string, List<string>>();
dicData.Add("some key",new List<string> {"some string"}):
如果要在初始化时添加项,可以执行此操作(在 C# 6、Visual Studio 2015 中):
Dictionary<string, List<string>> dicData = new Dictionary<string, List<string>>
{
{
"some key",new List<string> {"some string"}
},
{
"some other key",new List<string> {"some other string"}
}
};