Как подавить VB «Переменная итерации не должна использоваться в лямбда-выражении»

Я работаю с 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 () и т.д. (Это всего лишь предупреждение, но мне нравится, что мой код чистый. )

(Объявление локальной переменной и передача ей переменной итерации - это вариант, но я ищу чистое решение.)

5
задан Community 23 May 2017 в 09:58
поделиться