Я сделал функцию, чтобы сгенерировать нечетные числа:Фильтровать по IEnumerable .... Где?
static IEnumerable<int> OddNumbers()
{
int n = 1;
while (true)
yield return 1 + 2 * (n++ - 1);
}
Как пройти и отфильтровать этот список? Я пытаюсь удалить все кратные определенное число factor
, я писал:
using (var oddNumbers = OddNumbers().GetEnumerator())
{
oddNumbers.MoveNext();
int factor = oddNumbers.Current;
yield return factor;
oddNumbers = oddNumbers.Where(x => x % factor != 0);
}
но я получаю сказал, что
The type arguments for method `System.Linq.Enumerable.Where<TSource>(
this System.Collections.Generic.IEnumerable<TSource>,
System.Func<TSource,bool>)' cannot be inferred from the usage.
Try specifying the type arguments explicitly`
Declare 'oddNumbers' как:' IEnumerable oddNumbers = OddNumbers(); '. Затем используйте другую переменную в 'use' для перечислителя. –
'oddNumbers' является' IEnumerator ', но' Where' требует 'IEnumerable '. Вы можете просто использовать 'OddNumbers(). Где (x => x% factor! = 0)'. –
Lee
Uh ... все эти операции кажутся бесконечно бесконечными ... – Nyerguds