我想知道如何声明/初始化字典?下面一个给出错误。
Dictionary<string, List<string>> myD = new Dictionary<string, List<string>>()
{
{"tab1", MyList }
};
List <string> MyList = new List<string>() { "1" };
错误是:字段初始值设定项无法引用非静态字段、方法或属性 MyList。它不是在字典之前或之后出现的列表声明。
我想知道如何声明/初始化字典?下面一个给出错误。
Dictionary<string, List<string>> myD = new Dictionary<string, List<string>>()
{
{"tab1", MyList }
};
List <string> MyList = new List<string>() { "1" };
错误是:字段初始值设定项无法引用非静态字段、方法或属性 MyList。它不是在字典之前或之后出现的列表声明。
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" } }
};
正如斯科特张伯伦在回答中所说:
如果这些是非静态字段定义,则不能像那样使用字段初始值设定项,您必须将数据放入构造函数中。
class MyClass { Dictionary<string, List<string>> myD; List <string> MyList; public MyClass() { MyList = new List<string>() { "1" }; myD = new Dictionary<string, List<string>>() { {"tab1", MyList } }; } }
另外对于静态字段
private static List<string> MyList = new List<string>()
{
"1"
};
private static Dictionary<string, List<string>> myD = new Dictionary<string, List<string>>()
{
{"tab1", MyList }
};
如果这些是非静态字段定义,则不能像那样使用字段初始值设定项,您必须将数据放入构造函数中。
class MyClass
{
Dictionary<string, List<string>> myD;
List <string> MyList;
public MyClass()
{
MyList = new List<string>() { "1" };
myD = new Dictionary<string, List<string>>()
{
{"tab1", MyList }
};
}
}