Mi manca qualcosa di semplice qui.Utilizzo di IEnumerable senza ciclo foreach
Prendere il seguente codice:
public IEnumerable<int> getInt(){
for(int i = 0; i < 10; i++){
yield return i;
}
}
posso chiamare questo con:
foreach (int j in obj.getInt()){
//do something with j
}
Come posso utilizzare il metodo getInt senza il ciclo foreach:
IEnumerable<int> iter = obj.getInt();
// do something with iter ??
Grazie.
modifiche
Per coloro che chiedono il motivo per cui avrei voluto questo. Sto iterando due cose:
IEnumerator<int> iter = obj.getInt().GetEnumerator();
foreach(object x in xs){
if (x.someCondition) continue;
iter.MoveNext();
int n = iter.current();
x.someProp = n;
etc...
}
Che cosa stai cercando di fare esattamente? L'intero punto in "IEnumerable" è di consentire l'iterazione e un ciclo 'foreach' è il modo più efficiente per farlo. –
@Zakalwe, voglio ripetere due enumerabili contemporaneamente. Il foreach si sta muovendo attraverso il primo, se incontra una condizione, ho bisogno del prossimo int (solo un esempio, non proprio un int). – Mark