【发布时间】:2011-05-25 03:27:30
【问题描述】:
我可以通过for 循环进行转换吗?
有没有更好的方法?
for (int i = 0; i < myListByte.Count ;i++)
{
myArryByte[i] = myListByte[i];
}
【问题讨论】:
-
是否可以切换到 C# 3.0?如果是,请使用
ToArray方法,如果不是,请使用旧的“创建数组,在 foreach 循环中复制值”方法 -
@Dyppl:ToArray 在 2.0 中可用于 List。没有必要为此切换到 3.0。此外,人们不会为了单一的便利功能而切换框架。
-
@Paul Sasik:你说得对,我完全忘记了这一点,并且确信人们指的是 LINQ 扩展方法。谢谢!
-
记住 List 和 IList 有不同的方法,而 IList 没有 ToArray()...
-
就个人而言,对于处理二进制数据,我建议使用
MemoryStream而不是List<byte>。然后您可以使用GetBuffer()访问 oversized 后备缓冲区,而无需额外分配;你只需要记住只从中读取.Length字节;p