Take Clause (Visual Basic)
A gyűjtemény kezdetétől megadott számú összefüggő elemet ad vissza.
Syntax
Take count
Részek
count
Szükséges. Olyan érték vagy kifejezés, amely kiértékeli a visszaadni kívánt sorozat elemeinek számát.
Megjegyzések
A Take
záradék hatására a lekérdezés adott számú összefüggő elemet tartalmaz az eredménylista kezdetétől. A belefoglalandó elemek számát a count
paraméter határozza meg.
A záradék és a Take
Skip
záradék segítségével egy lekérdezés bármely szegmenséből visszaadhat egy adattartományt. Ehhez adja át a tartomány első elemének indexét a Skip
záradéknak, a tartomány méretét pedig a Take
záradéknak. Ebben az esetben a záradékot Take
a Skip
záradék után kell megadni.
Ha a Take
záradékot egy lekérdezésben használja, előfordulhat, hogy az eredményeket olyan sorrendben kell visszaadnia, amely lehetővé teszi, hogy a Take
záradék tartalmazza a kívánt eredményeket. További információ a lekérdezési eredmények megrendeléséről: Order By Clause.
A záradék használatával TakeWhile
megadhatja, hogy a megadott feltételtől függően csak bizonyos elemek legyenek visszaadva.
Példa
Az alábbi példakód a Take
záradék és a Skip
záradék együttes használatával adja vissza az adatokat egy lekérdezésből a lapokban. A GetCustomers függvény a Skip
záradék használatával megkerüli a listában szereplő ügyfeleket a megadott kezdő indexértékig, és a záradék használatával visszaadja az Take
adott indexértéktől kezdődő ügyfelek lapját.
Public Sub PagingSample()
Dim pageNumber As Integer = 0
Dim pageSize As Integer = 10
Dim customersPage = GetCustomers(pageNumber * pageSize, pageSize)
Do While customersPage IsNot Nothing
Console.WriteLine(vbCrLf & "Page: " & pageNumber + 1 & vbCrLf)
For Each cust In customersPage
Console.WriteLine(cust.CustomerID & ", " & cust.CompanyName)
Next
Console.WriteLine(vbCrLf)
pageNumber += 1
customersPage = GetCustomers(pageNumber * pageSize, pageSize)
Loop
End Sub
Public Function GetCustomers(ByVal startIndex As Integer,
ByVal pageSize As Integer) As List(Of Customer)
Dim customers = GetCustomerList()
Dim returnCustomers = From cust In customers
Skip startIndex Take pageSize
If returnCustomers.Count = 0 Then Return Nothing
Return returnCustomers
End Function