[英]Is there a simple way to re-cast a char[] array as Int32[]?
我正在開發一個C#程序來從一系列文本文件中擦除擴展的ASCII字符(示例在我的輸入字符串中)。 這就是我遇到的問題。 雖然我可以在我的for
循環中將char
重新設置為Int32
,但我正在嘗試查看是否有任何方法,將數組重新轉換為Int32
值? 在一個完美的世界中,我想直接傳遞Int32
數組的rocessing方法。 現在,我打算只創建一個接受char
數組並返回Int32
數組的方法。 有沒有更簡單的方法來執行此操作,這與我在代碼中包含的注釋類似?
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();
我的計划B:
private Int32[] RecastCharArray(char[] array)
{
Int32[] int32Value ;
for (int i = 0; i < array.Length; i++) {
int32Value[i] = array[i];
}
return int32Value;
}
您可以使用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值。
使用LINQ?
char[] array = value.ToCharArray();
int[] newarray = array.Select(c => (int)c).ToArray();
您可以使用Array.ConvertAll
:
int[] ints = Array.ConvertAll<char, int>(chars, c => (int) c);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.