【问题标题】:How to perform a count using LINQ?如何使用 LINQ 执行计数?
【发布时间】:2014-12-22 13:54:53
【问题描述】:

我正在使用 SQL 服务器,并且在我的程序中我目前正在使用这样的计数:

Function NumberOfApplications(inCandidateID As Integer) As Integer

        Dim iCount As Integer = 0

        Dim oApplication As DataModels.Application
        For Each oApplication In Me.Applications
            If oApplication.CandidateID = inCandidateID Then
                iCount = iCount + 1
            End If
        Next
        Return iCount
    End Function

我已经创建了我的实体并购买了正确的 Imports,但我需要知道如何使用 LINQ 和 VB 执行计数。正如您在上面看到的,我正在使用候选 ID 进行计数。任何帮助,将不胜感激。谢谢。

【问题讨论】:

  • 类似于 Me.Applications.Select (s=>s.CandidatId).Distinct.Count() 的东西

标签: sql-server vb.net linq-to-sql


【解决方案1】:

正如@Pleun 提到的,您可以使用Count 方法,但该方法本身有一个谓词选项,因此您可以使用:

return Me.Applications.Count(app => app.CandidateID == inCandidateID);

在 C# 中。我总是必须努力思考在 VB 中会是什么样子,这是我的大脑告诉我的。编译器可能不同意;):

Return Me.Applications.Count(Function(app) app.CandidateID = inCandidateID)

【讨论】:

  • 在 Vb 中仅使用1 = 进行比较
【解决方案2】:

如果您更喜欢类似 sql 的语法,您也可以这样做:

Function NumberOfApplications(inCandidateID As Integer) As Integer   

    Return (From app As DataModels.Application In Me.Applications
            Where app.CandidateID = inCandidateID).Count

End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 2015-06-29
    • 2012-12-25
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 2010-09-08
    相关资源
    最近更新 更多