Если условие в выражении LINQ count с использованием метода выражения

Мои данные выглядят так:

A    | B
80   | 80
90   | 10
80   | NULL

Я подсчитываю все значения, отличные от Null B, с

.C = eGroup.Count(Function(x) x.IsBNull = False)

Но мне нужно другое условие в моем выражении, так как я просто хочу подсчитать, если A> = B.

Я пытался

.C = eGroup.Count(Function(x) x.IsBNull = False And x.A >= x.B)

но я получаю сообщение об ошибке, как только B будет NULL.

EDIT: Я получаю данные из набора данных. У меня есть поле "Команды" и группировка моего набора данных командами для использования вышеприведенного запроса:

dim query = Из строки в _dataset.DS Группа row by row.Team Into eGroup = Group

+2
источник поделиться
1 ответ

Используйте AndAlso вместо And, последний всегда оценивает и второе условие, даже если первый был уже False. Читайте: В чем разница между And и AndAlso в VB.NET?

.C = eGroup.Count(Function(x) x.IsBNull = False AndAlso x.A >= x.B)

В стороне, то же самое относится к Or и OrElse. Я почти никогда не использовал And or Or за 12 лет разработки VB.NET.

+3
источник

Посмотрите другие вопросы по меткам или Задайте вопрос