Мне здесь нечего пропустить.Использование IEnumerable без петли foreach
Возьмем следующий код:
public IEnumerable<int> getInt(){
for(int i = 0; i < 10; i++){
yield return i;
}
}
Я могу назвать это с:
foreach (int j in obj.getInt()){
//do something with j
}
Как я могу использовать метод GetInt без цикла Еогеасп:
IEnumerable<int> iter = obj.getInt();
// do something with iter ??
Спасибо.
редактирует
Для тех, кому интересно, почему я хочу этого. Я повторяю две вещи:
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...
}
Что именно вы пытаетесь сделать? Весь смысл в 'IEnumerable' состоит в том, чтобы разрешить итерацию, а цикл 'foreach' - наиболее эффективный способ сделать это. –
@ Zakalwe, я хочу повторить два перечислимых момента одновременно. Предпросмотр проходит через первый, если он удовлетворяет условию, мне нужен следующий int (просто пример, а не int). – Mark