У меня есть запрос LINQ, который работает для всего, за исключением тех случаев, когда местоположение равно 0, и я хочу подсчитать, сколько строк Inventory = locGroup.Count
возвращает 0. Все остальные Функции подсчета работают нормально, когда местоположение равно 0, а Inventory = locGroup.Count
отлично работает, когда местоположение не равно 0. Насколько я могу судить, вы не можете отлаживать оператор LINQ в VS, поэтому я не уверен, почему и как это происходит, т работы.linq count возвращает 0, если группа по столбцу равна 0
Не знаю, как отобразить эти табличные данные по SO
IMLOCN | IMPRIC | isSpecial | vehComments | numPics | Возраст
50 -------------- 5 ------------ 0 --------------- Y ----------------- 21 ------- 100
50 -------------- 5.8 ----------------- ------ 1 --------------- Y ----------------- 23 ------- 200
0 --------------- 2 ------------- 0 --------------- N ----------------- 0 --------- 5
0 --------------- 4- ------------ 0 --------------- N ----------------- 0 --- ------ 10
Ожидаемый результат
50 - 2 - 2 - 1 - 2 - 2 - 300
0 - 2 * - 2 - 0 - 0 - 0 - 15 * фактические результаты это a 0, но другие # остаются неизменными.
Dim summaryInfo = From p In infoTable
Group p By Location = p.Field(Of Byte)("IMLOCN") Into locGroup = Group
Select New With {
Key locGroup,
.Location = locGroup.Max(Function(r) r.Field(Of Byte)("IMLOCN")),
.Inventory = locGroup.Count(Function(r) r.Field(Of Byte)("IMLOCN")),
.Priced = locGroup.Count(Function(r) r.Field(Of Decimal)("IMPRIC") > 0),
.Special = locGroup.Count(Function(r) r.Field(Of Boolean)("isSpecial") = True),
.Commented = locGroup.Count(Function(r) r.Field(Of String)("vehComments") = "Y"),
.Pictures = locGroup.Count(Function(r) r.Field(Of Int32)("numPics") > 0),
.Age = locGroup.Sum(Function(r) r.Field(Of Int32)("AGE"))
}
Обеспечить ввод проб и ожидаемый выход. –
Я смог получить то, что мне было нужно, указав locGroup.Count() и оставив анонимную функцию, но это не отвечает на мой вопрос о том, почему он не работает так, как это было для locGroup = 0 – Kevin