C# 在c中初始化嵌套字典#
我需要知道如何访问和初始化一系列包含其他词典的词典。 例如,如果我有C# 在c中初始化嵌套字典#,c#,list,dictionary,visual-studio-2017,list-initialization,C#,List,Dictionary,Visual Studio 2017,List Initialization,我需要知道如何访问和初始化一系列包含其他词典的词典。 例如,如果我有 class Conv{ Dictionary<int, Dictionary<int, Dictionary<int, List<double>>>> valori; } 但是在第一个“值”之后,MVS给了我一个错误。也许我必须先分配内存?我学到了一些C++,但我对C仍然是新的。 如果我忘记了问题中的一些重要内容,也请告诉我也许我弄错了,但我想不出您需要这种结构的情况,
class Conv{
Dictionary<int, Dictionary<int, Dictionary<int, List<double>>>> valori;
}
但是在第一个“值”之后,MVS给了我一个错误。也许我必须先分配内存?我学到了一些C++,但我对C仍然是新的。
如果我忘记了问题中的一些重要内容,也请告诉我也许我弄错了,但我想不出您需要这种结构的情况,但我还是提供了帮助: 首先,您需要分配变量,否则会出现错误: “使用未分配局部变量”。因此代码如下:
Dictionary<int, Dictionary<int, Dictionary<int, List<double>>>> valori=new
Dictionary<int, Dictionary<int, Dictionary<int, List<double>>>>();
Dictionary valori=new
字典();
其次,您需要向字典中添加一些数据,以便以后使用
你应该做:
valori.Add(2, new Dictionary<int, Dictionary<int, List<double>>>());
valori.Add(3, new Dictionary<int, Dictionary<int, List<double>>>());
valori.Add(4, new Dictionary<int, Dictionary<int, List<double>>>());
valori.Add(2,newdictionary());
添加(3,新字典());
添加(4,新字典());
“请注意,键是不同的”
而不是newdictionary()
输入该类型的值。也许我弄错了,但我想不出需要这种结构的情况,但我还是提供了帮助: 首先,您需要分配变量,否则会出现错误: “使用未分配局部变量”。因此代码如下:
Dictionary<int, Dictionary<int, Dictionary<int, List<double>>>> valori=new
Dictionary<int, Dictionary<int, Dictionary<int, List<double>>>>();
Dictionary valori=new
字典();
其次,您需要向字典中添加一些数据,以便以后使用
你应该做:
valori.Add(2, new Dictionary<int, Dictionary<int, List<double>>>());
valori.Add(3, new Dictionary<int, Dictionary<int, List<double>>>());
valori.Add(4, new Dictionary<int, Dictionary<int, List<double>>>());
valori.Add(2,newdictionary());
添加(3,新字典());
添加(4,新字典());
“请注意,键是不同的”
而不是newdictionary()
输入该类型的值。在使用每个键之前,需要为其创建子字典
var list = new List<double> {d};
var d1 = new Dictionary<int, List<double>> {{n3, list }};
var d2 = new Dictionary<int, Dictionary<int, List<double>>> {{n2, d1}};
valori[n1] = d2;
由于这种语法非常笨拙,而且很容易出错(如果存在子字典,则会丢失子字典、重写数据等),因此我强烈建议更改数据结构,或者至少将其隐藏在专用类中在使用它们之前,您需要为每个键创建子字典
var list = new List<double> {d};
var d1 = new Dictionary<int, List<double>> {{n3, list }};
var d2 = new Dictionary<int, Dictionary<int, List<double>>> {{n2, d1}};
valori[n1] = d2;
由于这种语法非常笨拙,而且很容易出错(如果存在子字典,则会丢失、重写数据等),因此我强烈建议更改数据结构或至少将其隐藏在专用类中谢谢您的帮助。正如你所知,我必须反序列化一个Json文件,它就像一个框架列表。然后,我想在一个类中传递它的值,这个类是personal。另外,我刚刚发布了一个关于Json的序列化和反序列化的问题,如果您想查看的话!:)谢谢你的帮助。正如你所知,我必须反序列化一个Json文件,它就像一个框架列表。然后,我想在一个类中传递它的值,这个类是personal。另外,我刚刚发布了一个关于Json的序列化和反序列化的问题,如果您想查看的话!:)非常感谢。如果你有时间的话,我会发布另一个问题:谢谢!如果你有时间,我发布了另一个问题:D