如何将IEnumerable <byte>更改为String

时间:2016-06-29 14:46:40

标签: c#

我有以下简化功能:

private IEnumerable<byte> Encode(IEnumerable<byte> Input)
{
   computation();
   return result;
}

缓冲区:

 byte[] BufferHex = {0x00};
 IEnumerable<byte> result1;
 richtext.AppendText(Encoding.UTF8.GetString(result1));

错误在最后一行说:将IEnumerable转换为byte []是不可能的。

我尝试过几件事,但仍然没有成功。任何帮助将不胜感激。

3 个答案:

答案 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()