C# 将字符数组转换为整数数组

C# 将字符数组转换为整数数组,c#,arrays,char,int,type-conversion,C#,Arrays,Char,Int,Type Conversion,我有这些阵列 char[] array = {'1', '2', '3', '4'}; int[] sequence = new int[array.Length]; 是否有一种简单的方法将数组中的数字分配给序列 我试过这个 for (int i = 0; i < array.Length; i++) { seqence[i] = Convert.ToInt32(array[i]); } for(int i=0;i

我有这些阵列

char[] array = {'1', '2', '3', '4'};
int[] sequence = new int[array.Length];  
是否有一种简单的方法将
数组中的数字分配给
序列

我试过这个

for (int i = 0; i < array.Length; i++)
{
    seqence[i] = Convert.ToInt32(array[i]);
}
for(int i=0;i
但是我得到的是1、2、3、4的ASCII编码,而不是数字本身。

试试看

for (int i = 0; i < arr.Length; i++)
 {
     seqence[i] = (int)Char.GetNumericValue(array[i]);
 }
for(int i=0;i
您可以用来实现这一点。它生成从-到的连续数字序列

举个例子:

 IEnumerable<int> squares = Enumerable.Range(1, 10)

迭代字符数组并使用下一个转换:

char[] charArray = { '1', '2', '3', '4' };

int[] intArray= new int[charArray .Length];

for (int i = 0; i < charArray .Length; i++)
{
    intArray[i] = (int)Char.GetNumericValue(charArray[i]);   

}
char[]charArray={'1','2','3','4'};
int[]intArray=新的int[charArray.Length];
for(int i=0;i
如果先将每个字符转换为字符串,然后使用
int.Parse
(或仍然使用
convert.ToInt32
)即可

就我个人而言,我会使用LINQ,例如

int[] sequence = array.Select(x => int.Parse(x.ToString())).ToArray();
。。。如果您对
列表
同样满意,也可以使用
列表

如果您想按照另一个答案中的建议使用,也可以将其用于LINQ:

int[] sequence = array.Select(x => (int) char.GetNumericValue(x)).ToArray();
请注意,强制转换为
int
是必需的,因为
char.GetNumericValue
返回一个
double
。(有Unicode字符表示值,例如“半个”)

或者,如果您完全确定您将使用ASCII数字,您可以使用快速和肮脏:

int[] sequence = array.Select(x => x - '0').ToArray();
使用以下命令:

for (int i = 0; i < array.Length; i++)
{
    sequence[i] = array[i] - '0';
}
for(int i=0;i
这里有很多正确的答案,但是(除非你想使用不安全的代码),这是最快的,而且不需要额外的内存。

试试这个:

char[] array = { '1', '2', '3', '4' };

int[] sequence = new int[array.Length];

for (int i = 0; i < array.Length; i++)
{
    sequence[i] = int.Parse(array[i].ToString());
}
char[]数组={'1','2','3','4'};
int[]序列=新的int[array.Length];
for(int i=0;i
首先将
字符
转换为
字符串

for (int i = 0; i < array.Length; i++)
{
     sequence[i] = Convert.ToInt32(array[i].ToString());
}

在转换为整数之前,请尝试将字符值转换为字符串:

for (int i = 0; i < arr.Length; i++)
{
  sequence[i] = Convert.ToInt32(array[i].ToString());
}
for(int i=0;i
尝试将字符串中的数字从“1”更改为“1”,依此类推。这会改变它,使它们变成整数。
但我得到的是1,2,3,4的ASCII编码,而不是数字本身。实际上,您得到的是Unicode字符的32位有符号整数。
for (int i = 0; i < array.Length; i++)
{
     sequence[i] = Convert.ToInt32(array[i].ToString());
}
char[] array = {'1', '2', '3', '4'};
int[] sequence = array.Select(c => Convert.ToInt32(c.ToString())).ToArray();
for (int i = 0; i < arr.Length; i++)
{
  sequence[i] = Convert.ToInt32(array[i].ToString());
}