初始化字典>。
在上述代码中,出现了一个问题,即在非静态字段定义中不能像上述代码中那样使用字段初始化器。在这个例子中,我们想要初始化一个Dictionary
然而,由于这是一个非静态字段定义,因此不能直接使用字段初始化器来进行初始化。相反,我们需要在构造函数中手动进行初始化。因此,我们需要将代码修改为以下形式:
class MyClass { Dictionary> myD; List MyList; public MyClass() { MyList = new List () { "1" }; myD = new Dictionary >(); myD.Add("tab1", MyList); } }
在修改后的代码中,我们将MyList的初始化移到了构造函数中,并使用Add方法将键值对添加到了myD中。
通过这样的修改,我们解决了代码中的问题,使得Dictionary
问题的原因是在非静态字段定义中无法使用字段初始化器来初始化字典(Dictionary)对象。解决方法是将数据放在构造函数中。
对于非静态字段定义,需要在构造函数中初始化字典(Dictionary)对象。具体代码如下:
class MyClass { Dictionary> myD; List MyList; public MyClass() { MyList = new List () { "1" }; myD = new Dictionary >() { {"tab1", MyList } }; } }
对于静态字段定义,需要在静态字段初始化器中初始化字典(Dictionary)对象。具体代码如下:
private static ListMyList = new List () { "1" }; private static Dictionary > myD = new Dictionary >() { {"tab1", MyList } };
这样就可以解决问题了。
在上述代码中,出现了一个问题:如何初始化一个包含字符串键和字符串列表值的Dictionary。代码中使用了泛型Dictionary类,其中键的类型为string,值的类型为List
解决这个问题的方法是使用Dictionary的构造函数进行初始化。可以通过传递一个实现了IDictionary
下面是使用构造函数进行初始化的代码示例:
class MyClass { Dictionary<string, List<string>> myD = new Dictionary<string, List<string>>() { {"tab1", new List<string> { "1" } }, {"tab2", new List<string> { "1","2","3" } }, {"tab3", new List<string> { "one","two" } } }; }
这样,就可以正确地初始化一个包含字符串键和字符串列表值的Dictionary对象。