我有以下简化功能:
private IEnumerable<byte> Encode(IEnumerable<byte> Input)
{
computation();
return result;
}
缓冲区:
byte[] BufferHex = {0x00};
IEnumerable<byte> result1;
richtext.AppendText(Encoding.UTF8.GetString(result1));
错误在最后一行说:将IEnumerable转换为byte []是不可能的。
我尝试过几件事,但仍然没有成功。任何帮助将不胜感激。
答案 0 :(得分:4)
正如它所说的那样,期望byte[]
作为参数,因此您需要将IEnumerable<byte>
转换为byte[]
,您可以使用ToArray扩展方法执行此操作:
richtext.AppendText(Encoding.UTF8.GetString(result1.ToArray()));
答案 1 :(得分:3)
Encoding.UTF8.GetString()
需要byte[]
类型的参数,而不是IEnumerable<byte>
。所以只需将该行更改为
richtext.AppendText(Encoding.UTF8.GetString(result1.ToArray()));
ToArray()
是一个LINQ扩展程序,可将IEnumerable<T>
转换为T[]
。
答案 2 :(得分:0)
我不知道这是否适合您的情况,但您可以使用Convert.ToBase64String(byte[] bytes)
并且不要忘记在您的可枚举上致电ToArray()