如果您正在处理byte[]数组,那么您可以这样做:
string yourString = Encoding.ASCII.GetString(yourArray, startIndex, length);
Run Code Online (Sandbox Code Playgroud)
由于你的数组是类型的int[]- 假设每个元素代表一个ASCII字符 - 你需要首先将它们转换int为bytes.如果数组是"任意长",那么你可能不想将整个事物转换为byte[]数组,在这种情况下只需要转换你需要的部分:
byte[] temp =
yourArray.Skip(startIndex).Take(length).Select(i => (byte)i).ToArray();
string yourString = Encoding.ASCII.GetString(temp);
Run Code Online (Sandbox Code Playgroud)
如果int[]数组的每个元素实际上并不代表单个ASCII字符,那么您需要向我们提供有关其使用的精确格式的更多信息.
假设字符串为空终止(您没有指定如何知道字符串的结尾),那么Linq应该做一些技巧:
var chars = ints.Skip(1000).TakeWhile(i => i != 0).Select(i => (char)i);
var str = new string(chars.ToArray());
Run Code Online (Sandbox Code Playgroud)
第一个类似于跳过1000个int,在它们不是空终止符时获取它们,然后将它们转换为适合表示ASCII代码的int的char.第二行简单地将它们变成一个字符串.
如果字符串没有空终止符,并且只是在数组结束时结束,那么只需删除对它的调用TakeWhile.
| 归档时间: |
|
| 查看次数: |
559 次 |
| 最近记录: |