5
Tôi đang tạo ra một mảng với những điều sau CreateArray
phương pháp tĩnh:Refactor LINQ ForEach trở về IEnumerable <T>
public static int[] CreateArray(int size)
{
var ret = new int[size];
ret[0] = 0;
ret[1] = 1;
Parallel.ForEach(Enumerable.Range(2, size - 2), i =>
{
ret[i] = Func(i).Count();
});
return ret;
}
đâu Func trông giống như:
public static IEnumerable<int> Func(int i)
{
...
}
Có thể cấu trúc lại các phương pháp CreateArray
trong một cái gì đó như:
public static int[] CreateArray(int size)
{
var tableFromIndex2 = ...
return new[] { 0, 1 }
.Concat(tableFromIndex2)
.ToArray();
}
Hey svick, tôi nghĩ nó đúng nhưng thực ra tôi đã nhận được kết quả không được đặt hàng bởi 'i'. Tôi có nghĩa là, tôi OK để chạy 'Func (i) .Count()' song song nhưng sau đó kết quả nên được đặt ở vị trí 'i' ... –
Bạn nói đúng, tôi quên' AsOrdered() ' . Đã sửa lỗi. – svick
Cảm ơn svick, tôi không biết 'AsOrdered()' tồn tại –