使用字典中的2 for循环添加键和值

时间:2015-02-25 19:00:49

标签: c# .net generics dictionary collections

我是编程新手,更具体的是词典。我试图使用1 for循环添加键,并使用另一个for循环添加值。

Dictionary<string, string> myDictionary= new Dictionary<string, string>(); 


for(int i=0; i<13; i++)
    for(int j=32;j<45; j++)
myDictionary.Add(Convert.ToString(i)+"A", Convert.ToString(j)+"B");

我想拥有13个键和13个值,但这会产生更多我想要的结果。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:3)

只需一个循环并添加以下项目:

for(int i=0; i<13; i++)
{
   myDictionary.Add(Convert.ToString(i)+"A", Convert.ToString(i + 32)+"B");
}

您也不必致电Convert.ToString,字符串连接就可以解决这个问题:

for (int i = 0; i < 13; i++)
        myDictionary.Add(i + "A",  (i + 32) + "B");

您需要在两个迭代变量上进行循环,而不是嵌套for循环。你也可以 做:

for (int i = 0, j = 32; i < 13 && j < 45; i++, j++)
    myDictionary.Add(i + "A", j + "B");

答案 1 :(得分:3)

只是为了好玩,一个Linq投影:

var myDictionary = 
      Enumerable.Range(0, 13)
                .ToDictionary(i => i + "A", i => (i + 32) + "B");

答案 2 :(得分:0)

我不确定value的目的是什么,是从这样的循环生成的。但是,您实际上可以执行以下操作:

var random = new Random();
var container = new Dictionary<string, string>();

for(var i = 0; i < 13; i++)
     container.Add(i + "A", random.Next() + "B");

该代码将自动提供零到十三的数字键。此外,该值将被随机化,并在这些随机值的末尾添加B