Проходите по коллекции с конца через for, доступ к элементам через индексатор. На коленке, просто чтоб смысл был понятен, что-то типа этого
for(var i = arr.Count - 1; i >= 0; i--)
{
if(arr[i].Name == "Any")
{
arr.RemoveAt(i);
}
}
Ну и на всякий случай, у linq есть метод RemoveAll
arr.RemoveAll(x => x.Name == "Any");
А еще можно вернуть новую коллекцию, где не будет этого значения
arr.Where(x => x.Name != "Any");
По смыслу это будет тоже самое. Но в первом варианте, для удаления, Вам не придется создавать копии коллекций, ибо варианты с linq вернут новые списки. Особенно это актуально когда нужно избежать лишние алокации, если Ваш список внушителен по объему.