如何从linq中的查询表达式中获取Count?

时间:2012-01-25 22:03:50

标签: vb.net linq asp.net-3.5

我现在拥有的是:

Dim users = From users In tempTable _
            Distinct Select users.Item("s_userid")
Dim usersCount As Integer = users.Count

但我很确定我不应该这样做。我应该能够从第一个linq查询中获取计数。我错过了什么?

2 个答案:

答案 0 :(得分:2)

Dim userCount = (From users In tempTable _
            Distinct Select users.Item("s_userid")).Count

答案 1 :(得分:2)

Dim distinctUserCount = (From users In tempTable
                    Let UserID = CInt(users.Item("s_userid"))
                    Select UserID).Distinct.Count

另一种方法是通过UserID-Column对DataRows进行分组:

distinctUserCount  = (From users In tempTable
                    Let UserID = CInt(users("s_userid"))
                    Group users By UserID Into Group).Count

“原生”ADO.NET方法:

Dim view = new DataView(tempTable)
Dim TblDistinctUsers = view.ToTable(true, "s_userid")
distinctUserCount = TblDistinctUsers.Rows.Count

http://msdn.microsoft.com/en-us/library/wec2b2e6%28v=vs.100%29.aspx