我创建了public struct Values
public string value1
和public string value2
。
public struct Values
{
public string header;
public string type;
}
我的字典:
var myDictionary = new Dictionary<int, Values>();
问题:如何为每个键添加两个值?
while (true)
{
for (int i = 0; i < end i++)
{
myDictionary.Add(i, value1 , value2);
}
}
答案 0 :(得分:1)
如果我正确地得到了问题,你必须初始化一个Values对象,然后将它添加到你的字典中。像这样:
while (true) {
for (int i = 0; i < end i++) {
Values tmp_values;
tmp_values.header = "blabla";
tmp_values.type = "blabla type";
myDictionary.Add(i, tmp_values);
}
}
答案 1 :(得分:1)
如果您想生成字典,可以尝试使用 Linq :
var myDictionary = Enumerable
.Range(0, end)
.Select(i => new {
key = i,
value = new Values() {
header = HeaderFromIndex(i), //TODO: implement this
type = TypeFromIndex(i) //TODO: implement this
}})
.ToDictionary(item => item.key, item => item.value);
如果您要将项目添加到现有词典中:
for (int i = 0; i < end; ++i)
myDictionary.Add(i, new Values() {
header = HeaderFromIndex(i), //TODO: implement this
type = TypeFromIndex(i) //TODO: implement this
});
请注意,在任何情况下,词典都包含对:{key, value}
;因此,如果您希望将两个项目作为相应键的值,则必须将值组织到您的案例中的new Values() {header = ..., type = ...}
类