Похоже, что вы пытаетесь просто перебрать последовательность, заменяя 1 на 0. В этом случае будет проще обернуть это в метод, который возвращает yield:
IEnumerable<int> GetValues(IEnumerale<int> source)
{
foreach(var value in source)
{
if(value == 1)
{
yield return 0;
}
else
{
yield return value;
}
}
}
Теперь, если у вас есть:
List<int> _nums = new List<int>{1, 2 ,4};
Тогда вы можете сказать:
foreach(var value in GetValues(_nums))
{
Console.WriteLine(value);
}
Вы также можете сделать это с помощью Linq, используя метод Select
:
foreach(var value in _nums.Select(v => v == 1 ? 0 : v))
{
Console.WriteLine(value);
}