5
Sto creando un array con il seguente CreateArray
metodo statico:Refactor LINQ ForEach per tornare 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;
}
Dove Func assomiglia:
public static IEnumerable<int> Func(int i)
{
...
}
E 'possibile refactoring il metodo CreateArray
in qualcosa come:
public static int[] CreateArray(int size)
{
var tableFromIndex2 = ...
return new[] { 0, 1 }
.Concat(tableFromIndex2)
.ToArray();
}
Ehi svick, ho pensato che fosse giusto, ma in realtà ho ottenuto i risultati non ordinati da 'i'. Voglio dire, sto bene per eseguire 'Func (i) .Count()' in parallelo, ma il risultato dovrebbe essere collocato nella posizione 'i' ... –
Hai ragione, ho dimenticato' AsOrdered() ' . Risolto ora. – svick
Grazie svick, non so che 'AsOrdered()' esiste –