如何将 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();
我需要将整数数组转换为 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();