Modifier la liste dans la boucle foreach

J'ai une construction similaire à ceci (mais un beaucoup plus compliqué):

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 ..
    }
}

Maintenant, je comprends que ce n'est pas possible de modifier la collection vous êtes foreaching à travers, mais comment voulez-vous sortir d'une boucle normalement si vous n'avez pas à modifier la liste (sans try catch déclaration)? Est-il possible de dire si la liste a été éditée? Vous pouvez modifier la liste et rapidement break; avant d'avis?

source d'informationauteur Entity