将字符串数组加载到 List 中最优雅的方法是什么?

本文关键字:方法 是什么 加载 数组 字符串 List int | 更新日期: 2023-09-27 18:33:26

考虑一个包含数值的字符串数组:

string[] intArray = {"25", "65" , "0"};

将数字加载到List<int>中最优雅的方法是什么,而无需使用forwhile来迭代intArray

将字符串数组加载到 List<int> 中最优雅的方法是什么?

您可以使用 Enumerable.Select 方法

List<int> intList = intArray.Select(str => int.Parse(str)).ToList();

(德米特里的回答
)你可以摆脱lambda,因为该方法已经有正确的签名:

List<int> intList = intArray.Select(Int32.Parse).ToList();

只需调用Select()

using System.Linq;
var list = intArray.Select(x => Convert.ToInt32(x));

PS:在我最初回答后,您的问题发生了变化。

这是这样做的方法。

string[] intArray = { "25", "65", "0" };
List<int> intList = new List<int>(Array.ConvertAll(intArray, s => int.Parse(s)));

 string[] intArray = { "25", "65", "0" };
 List<int> intList = new List<int>(intArray.Select(int.Parse).ToArray());

 string[] intArray = { "25", "65", "0" };
 List<int> intList = new List<int>(Array.ConvertAll(intArray, int.Parse));

我很惊讶没有人提到int.TryParse

string[] intArray = { "25", "65", "0" };
int tempNumber;
List<int> list = intArray.Select(r => int.TryParse(r, out tempNumber) 
                                     ? tempNumber : -1)
                     .ToList();

这将处理无效的输入并返回-1作为值。(它可以是指定错误或0的任何数字)

如果intArray只包含可解析的整数,那么以下内容就可以了:

List<int> list = intArray.Select(int.Parse).ToList();