Изменение списка внутри цикла foreach

У меня есть конструкция, похожая на эту (но лот более сложная):

var list = new List<string>();

// .. populate list ..

foreach(var item in list)
{
    DoFunction(list);
}

public void DoFunction(List<string> list)
{
    if(someCondition == true)
    {
        // .. modify list in here ..
    }
}

Теперь я понимаю, что невозможно редактировать коллекцию, через которую вы выполняете , но как изящно выйти из цикла, если вам нужно отредактировать список (без оператора try catch )? Есть ли способ узнать, редактировался ли список? Можете ли вы отредактировать список и быстро break; , прежде чем он заметит?

17
задан Entity 9 June 2011 в 15:03
поделиться