2012-03-27 16 views

risposta

40

È possibile utilizzare Enumerable.Range() ad es. restituire un array di 21 interi a partire da 30:

return Enumerable.Range(30, 21).ToArray(); 
+1

È necessario estendere il conteggio a 21 (include il numero iniziale). –

+1

Risolto: problema degli OP considerati più di un esempio – BrokenGlass

+0

Solo le risposte di Linq? – Bitterblue

20

Usa Enumerable.Range

var array = Enumerable.Range(30, 21).ToArray(); 

Questo si tradurrà in una sequenza di 21 valori a partire dalle 30. in poche parole, si ottiene il vostro { 30 ... 50 } array.

+0

È veloce come un ciclo for? – Sam

+5

@SamStriano possibilmente; perché non provi e vedi – phoog

+0

@phoog Se qualcuno conosce già la risposta, gli verrà risparmiato un po 'di tempo per impostare un progetto per testarlo. – Denny

1

utilizzando un ciclo è effettivamente più veloce rispetto all'utilizzo Enumerable.Range().ToArray()

ho misurato per creare una matrice di 1 000 000 elementi.

int[] array = Enumerable.Range(0, 1000000).ToArray(); richiede 9 ms, mentre la creazione di un array int[] array2 = new int[1000000]; e il riempimento in un ciclo for ha richiesto solo 3 ms.

Problemi correlati