我已经创建了一个List作为类的属性,并希望在定义List时设置Key / Value对。我最初使用的是一个结构,但意识到它可能不是理想的解决方案所以我把它改成了List。问题是我的语法错误。
有什么想法吗?
private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>>[]
{
new KeyValuePair<String, String>("lsd",""),
new KeyValuePair<String, String>("charset", "")
};
答案 0 :(得分:10)
可能我错过了一些东西,但我会使用一个词典来代替 这么简单....
Dictionary<string, string>formData = new Dictionary<string, string>
{
{"lsd", "first"},
{"charset", "second"}
};
然后以这些方式使用它:
foreach(KeyValuePair<string, string>k in formData)
{
Console.WriteLine(k.Key);
Console.WriteLine(k.Value);
}
....
if(formData.ContainsKey("lsd"))
Console.WriteLine("lsd is already in");
....
string v = formData["lsd"];
Console.WriteLine(v);
答案 1 :(得分:2)
试试这个:
private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>>
{
new KeyValuePair<String, String>("lsd",""),
new KeyValuePair<String, String>("charset", "")
};
您的定义中有额外的[]
。您没有创建数组,因此您不需要它。此外,在使用某些值初始化列表时,值应以逗号(,
)分隔。
在我看来,更好的方法是使用Tuple
class:
pirvate List<Tuple<string, string>> formData = new List<Tuple<string, string>>()
{
new Tuple<string, string>("lsd",""),
new Tuple<string, string>("charset", "")
};
答案 2 :(得分:0)
将分号更改为第三行的逗号,并从第一行删除方括号。
private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>>
{
new KeyValuePair<String, String>("lsd",""),
new KeyValuePair<String, String>("charset", "")
};
顺便提一下,如果将其更改为字典,则可以更轻松地按键查找值。
答案 3 :(得分:0)
从声明中删除[]
答案 4 :(得分:0)
private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>>()
{
new KeyValuePair<String, String>("lsd",""),
new KeyValuePair<String, String>("charset", "")
};
[]
在构造函数之后?,
。答案 5 :(得分:0)
试
private List<KeyValuePair<String, String>> formData = new List<KeyValuePair<String, String>>
{
new KeyValuePair<String, String>("lsd",""),
new KeyValuePair<String, String>("charset", "")
};