将字符串转换为int []

Byt*_*nix 2 c# arrays string int numbers

我想知道如何将字符串值中的数字转换为int[].我将以下数字存储在一个字符串中:

1,2,3,4
Run Code Online (Sandbox Code Playgroud)

但我想知道如何将这些数字存储在一个存储器中,int[]因此每个值都存储在int数组中.

Nas*_*ine 12

试试这个:

string str = "1,2,3,4";
int[] array = str.Split(',').Select(x => int.Parse(x)).ToArray();
Run Code Online (Sandbox Code Playgroud)

如果你有可能有一个带双逗号的字符串(例如1,,2,3,4),那么根据@Callum Linington的评论,这将更好用:

int[] array = str.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries)
                 .Select(int.Parse)
                 .ToArray();
Run Code Online (Sandbox Code Playgroud)

上面的代码是做什么的:

  1. 在调用之后创建一个字符串数组,Split()在那个方法调用之后我们会有这样的事情:{ "1", "2", "3", "4"}
  2. 然后我们将每个字符串传递给int.Parse()它们,将它们转换为32位有符号整数.
  3. 我们采用所有这些整数并用它们制作一个数组ToArray().


Sal*_*ari 6

使用Linq:

string str = "1,2,3,4";
var result = str.Split(',').Select(c => Convert.ToInt32(c)).ToArray();
Run Code Online (Sandbox Code Playgroud)

使用方法组可能更简单:

var result = str.Split(',').Select(int.Parse).ToArray();
Run Code Online (Sandbox Code Playgroud)

另外,如果您不了解Linq的更多信息,还有另一种Array.ConvertAll方法可以将一种类型的数组(调用后的字符串数组 Split())转换为另一种类型的数组(int[] 如您所愿):

var result = Array.ConvertAll(str.Split(','), int.Parse);
Run Code Online (Sandbox Code Playgroud)