[英]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.