2012-01-25 43 views
0

我現在所擁有的是這樣的:如何從linq中的查詢表達式中獲取計數?

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

但我敢肯定,我不應該這樣做。我應該能夠從第一個linq查詢中獲取/計數。我錯過了什麼?

+0

tempTable.Rows.Count? 什麼類型是tempTable?這是一個實體框架/ linq2sql調用? 你給我們提供的信息非常少。 (@ Keith Nicholas - 我同意) – asawyer

+0

這是LINQ到目標還是LINQ到SQL? –

+0

該表是一個DataTable。我沒有使用實體框架。我相信這將被視爲Linq-To-Objects。 – dotnetN00b

回答

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

另一種方法是按您的用戶名,列數據行:

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

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

「Select」背後的「Distinct」不是更好嗎? '(來自用戶在tempTable中選擇users.Item(「s_userid」))。Distinct.Count' –