我需要将整数数组转换为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语句。
答案 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();