Можно ли «искать» через петлю? Основываясь на определенных условиях, я хочу сделать «продолжение на месте», чтобы ускорить переход через цикл. Как это:Как перемещать петлю вперед «на месте»?
for(var thing in things)
{
// Do stuff
if(something)
{
// Move iteration forward until the iteration object ("thing") meets the right condition
while(true)
{
// Move the iteration forward...somehow
[Missing code goes here]
if(thing.Property == somevalue)
{
break;
}
}
}
// Do more stuff on the new value of "thing"
}
я мог бы использовать continue
, но я не хочу, чтобы вернуться к началу цикла. Я хочу пройти вперед через объекты в перечислителе, а затем просто подобрать, где я остановился.
Я предполагаю, что это невозможно. Если нет, то какая была бы лучшая логика для подражания тому, что я хочу делать.
Не можете ли вы отфильтровать коллекцию 'things' до итерации? – zerkms
Если вы можете использовать цикл 'for' вместо этого, легко (и опасно) настроить счетчик циклов в любой точке цикла. Если у вас есть 'IEnumerator', просто вызовите' MoveNext() 'до тех пор, пока ваше состояние не пострадает. – user2023861
Что такое тип данных объекта 'things'. Если это набор данных или набор данных, вы можете просто использовать метод' .Select', чтобы отфильтровать то, что вам нужно, тогда вам не придется делать все запросы вперед – MethodMan