繁体   English   中英

转换清单 <String> 列出 <int>

[英]Converting a List<String> to List<int>

我从文本文档中读取了一个数字列表,并将其保存在List<String>并且试图将这些数字转换为List<int> 数字用空格分隔。 这是我尝试过的,假设Numbers是String列表:

List<int> AllNumbers = Numbers.ConvertAll<int>(Convert.ToInt32);

当我尝试使用它时,提示“输入字符串的格式不正确”。

List<String>转换为List<int>的正确方法是什么?

样品:

            string numbers = File.ReadAllText("numbers.txt");
            string[] allNumbers = numbers.Split(new char[] { ' ', '\t', '\r', '\n' },    StringSplitOptions.RemoveEmptyEntries);
            List<string> List = new List<string>();
            List.AddRange(allNumbers);

然后,我想获取List allNumbers并将其转换为整数列表。

文本文件如下所示:

10 12 01 03 22 .... ect

如果您可以使用Linq,则看起来您的数字在用空格分隔的单个字符串中:

List<int> allNumbers = numbers.Split(' ').Select(int.Parse).ToList();

如果您确实已经有了一个List<string>数字,那么只需:

List<int> allNumbers = numbers.Select(int.Parse).ToList();

或者最后,如果每个字符串可能包含多个用空格分隔的数字:

List<int> allNumbers  = numbers.SelectMany(x=> x.Split(' ')).Select(int.Parse).ToList();

假设列表中的每个字符串包含一个或多个用空格分隔的整数,则可以尝试这种方法:

var res = listOfNumbers
    .SelectMany(numStr => numStr.Split(' ').Select(s => int.Parse(s)))
    .ToList();

您可以在最后一个选择中使用方法组而不是lambda: Select(int.Parse)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM