Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中初始化嵌套字典#_C#_List_Dictionary_Visual Studio 2017_List Initialization - Fatal编程技术网

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