Я работаю с LINQ в VB.NET и иногда получаю запрос вроде
For i = 0 To 10
Dim num = (From n In numbers Where n Mod i = 0 Select n).First()
Next
и затем появляется предупреждение " Использование переменной итерации в лямбда-выражении может привести к неожиданным результатам. Вместо этого создайте локальную переменную внутри цикла и присвойте ей значение переменной итерации."
Я знаю, что не рекомендуется использовать итерационную переменную в лямбда-выражении, потому что лямбда-выражения оцениваются только при необходимости. ( Этот вопрос об этом)
Теперь мой вопрос: как подавить это предупреждение в тех случаях, когда выражение вычисляется на месте, с помощью таких конструкций, как First (), Single (), ToList () и т. Д. (Это всего лишь предупреждение, но мне нравится мой код чистый.)
(Объявление локальной переменной и передача ей итерационной переменной - вариант, но я ищу чистое решение.)