我正在尝试创建从Image[]
创建的特定byte[]
。这是LINQ中的代码:
return thumbnails.AsParallel()
.Select(t => FromByteArray(t))
.ToArray()
以下是使用方法的代码:
public static Image FromByteArray(byte[] arr)
{
using (MemoryStream ms = new MemoryStream(arr))
return new Bitmap(ms);
}
它会一直有效吗?订单会被保留吗?
修改
如何保存订单?
答案 0 :(得分:1)
默认情况下,不会保留订单。但是,您需要做的只是添加.AsOrdered()
然后保留顺序。
return thumbnails.AsParallel()
.AsOrdered()
.Select(t => FromByteArray(t))
.ToArray()
或使用原始语法
return (from t in thumbnails.AsParallel().AsOrdered()
select FromByteArray(t))
.ToArray();
有关更多详细信息,请参阅MSDN文章“Order Preservation in PLINQ”(感谢Ian Mercer链接)