Переменная ограничена блоком, в котором она объявлена. Таким образом, у вас есть два result
s, один в if
блоке и один в else
блоке, которые отличаются и не видны вне их блоков.
Вам нужно определить переменную вне блоков, но тогда вам нужно быть конкретным в отношении типа, потому что компилятору C # требуется прямое выражение присваивания, чтобы вывести тип для ключевого слова var
.
Однако я предлагаю переосмыслить ваш код и сделать что-то вроде следующего:
var result = from dm in datacontext.Trk
where ((intval == 0) ? dm.ID == 0 : dm.ID != 0)
select dm;
if (result.Any())
{
// do something
}
Обратите также внимание, что result
никогда не будет null
, поэтому я заменил его на Any
, но я считаю, что это не суть вопроса.