我有一个逗号分隔的字符串,如1,5,7
,那么将这个字符串转换成int[]
数组的最简单和本地化的方法是什么?我可以编写自己的拆分函数,但有些人想知道如何以最本地化的方式来实现。
string s = "1,5,7";
int[] nums = Array.ConvertAll(s.Split(','), int.Parse);
或者,一个类似于 LINQ 的版本:
int[] nums = s.Split(',').Select(int.Parse).ToArray();
但第一个应该稍微快一点。
string numbers = "1,5,7";
string[] pieces = numbers.Split(new string[] { "," },
StringSplitOptions.None);
int[] array2 = new int[pieces.length];
for(int i=0; i<pieces.length; i++)
array2[i] = Convert.ToInt32(pieces[i]);
numbers.Split()
默认以单个字符作为分隔符。因此,如果要传递单个逗号作为分隔符,你需要将其作为字符传递,例如 numbers.Split(',');
。然而,如果你想要传递一个字符串作为分隔符,比如逗号后面跟着一个空格,那么你需要使用一个字符串数组。因此,使用了 new string[] {}
。例如,numbers.Split(new string[] {", "}, StringSplitOptions.None);
。 - undefined请看这里。
string numbers = "1,5,7";
List<int> numlist = new List<int>();
foreach (string number in numbers.Split(','))
numlist.Add(Int32.Parse(number));
Array.ConvertAll
知道输出的大小,而LINQ的ToArray()
函数必须在不知道预先计数的情况下收集结果。 - Ben Voigt