我怎样能将一个字符串数组转换为整数列表?(不使用我的自定义方法逐一转换)
从谷歌搜索中,我看到了名为ToList()和ConvertAll()的方法,但我无法打出它们,为什么会这样呢?
我尝试过:
new list<int>((int[])s.Split(','));
但是,我得到了错误提示:无法将字符串数组转换为整数数组 :(
这里涉及到一个两步处理过程。第一步是将字符串转换为整数,然后将数组转换为列表。如果您可以使用LINQ,最简单的方法是使用:
stringArray.Select(x => Int32.Parse(x)).ToList();
stringArray.Select(Int32.Parse).ToList();
的翻译是:将字符串数组中的每个元素转换成整数后,再把它们放到一个新的列表里。 - BrokenGlassTryParse
来防止异常:
'int i; List<int> intList = stringArray.Split(',').Select(s => int.TryParse(s, out i) ? i : -1).ToList();` - red_dorian从您的代码中获取提示:
var listOfInts = s.Split(',').Select(Int32.Parse).ToList();
var s = "1,2,3,4,5,6,7,8,9";
var result = s.Split(',').Select(Convert.ToInt32).ToList();
对于VB.NET,我必须在循环中完成它。
Dim myList As New List(Of Integer)
For Each item As String In s.Split(",")
myList.Add(Val(item))
Next
也许可以通过一些内置函数解决,但我不想花太多时间。
var list = s.Select(Int32.Parse).ToList();
int x = 0;
var intList= stringList.Where(str => int.TryParse(str, out x)).Select(str => x).ToList();
Array.ConvertAll
方法。 - MB_18public List<int > M1()
{
string[] s =(file path));
Array.Sort(s);
var c = new List<int>();
foreach(string x in s)
{
c.Add(Convert.ToInt32(x));
}
return c;
}
values
是您的字符串列表:int[] ints = new int[values.Count];
int counter = 0;
foreach (string s in values) {
ints[counter++] = int.Parse(s);
}
不要把自己搞得太复杂 :)
试一下:
var selectedEditionIds = input.SelectedEditionIds.Split(",").ToArray()
.Where(i => !string.IsNullOrWhiteSpace(i)
&& int.TryParse(i,out int validNumber))
.Select(x=>int.Parse(x)).ToList();
Array.ConvertAll
方法。 Array.ConvertAll
可以将一个类型的数组转换为另一个类型的数组。string[] strArray = new string[] { "1", "2", "3" };
int[] intArray = Array.ConvertAll(strArray, int.Parse);