byte[] result = memStream.ToArray(); memStream.Close();byte[] temp = result.Take(255);var str = System.Text.EnCoding.Default.GetString(temp);
以上结果失败.采取(255);线.它说我无法将IEnumerable转换为byte [],并询问我是否错过了强制转换.
我是C#的新手,不确定该怎么做.
解决方法 Take()返回枚举时执行的枚举器对象:这不是一个数组,因此您无法将其分配给对字节数组的引用.但是,使用liNQ,您可以通过调用其ToArray()方法获取任何序列并将其转换为适当类型的数组:
byte[] temp = result.Take(255).ToArray();
ToArray()枚举Take(255)的结果,将结果放入一个新数组,然后返回数组.
这有点令人困惑,因为你可以枚举一个数组,就像你可以枚举你从Take(255)得到的东西 – 但你可以枚举很多东西.这只是他们共同的一种行为,但它们实际上是非常不同的对象.
您可以将其中任何一个分配给IEnumerable< byte>:
IEnumerable<byte> a = result.Take(255);IEnumerable<byte> b = result.Take(255).ToArray();
……因为这是他们真正有共同点的一件事.
总结以上是内存溢出为你收集整理的c# – 使用Take()从字节数组中获取字节,在Take()之后转换回byte []时遇到问题全部内容,希望文章能够帮你解决c# – 使用Take()从字节数组中获取字节,在Take()之后转换回byte []时遇到问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)