Как правильно удалить элемент из коллекции в C# 6?
Во время обхода коллекции в цикле c помощью "GetEnumerator()" и "MoveNext()" нельзя менять состав этой коллекции.
Чтобы обойти такое ограничение, создаем копию исходной коллекции (например, методом "ToArray()") и делаем обход этой копии:foreach(var item in except.ToArray()) {
    Values.Remove(item);
}
Проходите по коллекции с конца через for, доступ к элементам через индексатор. На коленке, просто чтоб смысл был понятен, что-то типа этогоfor(var i = arr.Count - 1; i >= 0; i--)
{
     if(arr[i].Name == "Any")
     {
         arr.RemoveAt(i);
     }
}
Ну и на всякий случай, у linq есть метод RemoveAllarr.RemoveAll(x => x.Name == "Any");
А еще можно вернуть новую коллекцию, где не будет этого значенияarr.Where(x => x.Name != "Any");
По смыслу это будет тоже самое. Но в первом варианте, для удаления, Вам не придется создавать копии коллекций, ибо варианты с linq вернут новые списки. Особенно это актуально когда нужно избежать лишние алокации, если Ваш список внушителен по объему.