如何将 int 数组转换为 List<KeyValuePair<int, string>>?

How to convert int array to List<KeyValuePair<int, string>>?

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

像这样:

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

或者也可以:

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

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

试试这个:

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