如何将int数组转换为List <keyvaluepair <int,string =“”>&gt;?

时间:2015-07-23 06:58:04

标签: c# linq keyvaluepair

我需要将整数数组转换为KeyValuePair列表,其中字符串可以是空字符串。这样做有效而优雅的方法是什么?

所以从这个:

int[] ints = new int[] { 1, 2, 3 };

到此:

List<KeyValuePair<int, string>> pairs = new List<KeyValuePair<int, string>>();
pairs.Add(new KeyValuePair<int, string>(1, ""));
pairs.Add(new KeyValuePair<int, string>(2, ""));
pairs.Add(new KeyValuePair<int, string>(3, ""));

显然有很多方法可以做到这一点,从for循环开始,但我最好寻找一行代码,如果可能的话,也许是一个linq语句。

2 个答案:

答案 0 :(得分:7)

这样的事情:

var res = ints.Select(x => new KeyValuePair<int, string>(x, "")).ToList();

或者也可能:

var dict = ints.ToDictionary(x => x, x => "")

这将创建一个基本上是KeyValue对列表的字典。

答案 1 :(得分:1)

试试这个:

int[] ints = new int[] { 1, 2, 3 };
List<KeyValuePair<int, string>> pairs = ints.Select(i => new KeyValuePair<int, string>(i, i.ToString())).ToList();