在特定值vb.net上使用linq选择列表上的计数

时间:2013-11-18 15:41:52

标签: vb.net linq

我遇到问题正在寻找我正在寻找的结果。我需要做的主要是:

Select count(invoicenbr) from invoicelist where invoicenbr = 'invoice'

但是当我在linq中尝试时,我得不到正确的结果。

当我尝试执行下面的linq查询时,它会为我提供整个列表的计数,而不是where invoicenbr = 'invoice' ...

这是我的linq查询,它返回整个invoiceList的计数:

Dim test = (From invoices In invoicelist _
Where e.Row.Cells("invoicenbr").Value = invoice).count()

1 个答案:

答案 0 :(得分:3)

您的代码中存在命名问题,我认为它会对您的问题负责。

您的查询中的变量为invoices,但稍后您使用invoice将其与单元格值进行比较,因此您在范围内使用名称为invoice的其他变量。

这应该有效:

Dim invoicenbr As String = e.Row.Cells("invoicenbr").Value
Dim duplicates =  From invoice In invoicelist 
                  Where invoice = invoicenbr 
Dim duplicateCount As Int32 = duplicates.Count()