我正在使用C#程序从一系列文本文件中擦除扩展的ASCII字符(示例在我的输入字符串中)。这就是我遇到的问题。虽然我可以在char
循环中重新设置Int32
为for
,但我试图查看是否有任何方法,将数组重新转换为{ {1}}价值观?在一个完美的世界里,我想直接传递Int32
一系列的处理方法。现在,我计划只创建一个采用Int32
数组并返回char
数组的方法。有没有更简单的方法来执行此操作,类似于我的代码中包含的评论?
Int32
我的计划B:
string value = "Slide™1½”C4®";
byte[] asciiValue = Encoding.ASCII.GetBytes(value); // byte array
char[] array = value.ToCharArray(); // char array
/*
is there something like
Int32[] int32Array = array[].ToInt32();
*/
Console.WriteLine("CHAR\tBYTE\tINT32");
for (int i = 0; i < array.Length; i++) {
char letter = array[i];
byte byteValue = asciiValue[i];
Int32 int32Value = array[i];
/*
... evaluate int32Value and do stuff ...
*/
Console.WriteLine("{0}\t{1}\t{2}", letter, byteValue, int32Value);
}
Console.ReadLine();
答案 0 :(得分:2)
您可以使用LINQ。
char[] array = new char[] { 'a', 'b', 'c', '1', '2', '3' };
int[] int32Value = array.Select(r=> (int) r).ToArray();
如果您想将数字字符转换为int
,例如将字符'1'
更改为数字1
,则可以执行以下操作:
char[] array = new char[] { '1', '2', '3', '4' };
int[] intArray = array.Where(char.IsDigit)
.Select(r => (int) char.GetNumericValue(r))
.ToArray();
这将为您提供数字表示而不是ASCII值。
答案 1 :(得分:0)
使用LINQ?
char[] array = value.ToCharArray();
int[] newarray = array.Select(c => (int)c).ToArray();
答案 2 :(得分:0)
您可以使用Array.ConvertAll
:
int[] ints = Array.ConvertAll<char, int>(chars, c => (int) c);