如何向var myDictionary添加值= new Dictionary <int,values =“”>()

时间:2016-10-27 13:25:00

标签: c# .net

我创建了public struct Values public string value1public 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);
   }
}

2 个答案:

答案 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 = ...}