Zoeken…


Invoering

LINQ (Language Integrated Query) is een uitdrukking die gegevens ophaalt uit een gegevensbron. LINQ vereenvoudigt deze situatie door een consistent model aan te bieden voor het werken met gegevens in verschillende soorten gegevensbronnen en -indelingen. In een LINQ-query werkt u altijd met objecten. U gebruikt dezelfde basiscoderingspatronen om gegevens in XML-documenten, SQL-databases, ADO.NET-gegevenssets, .NET-verzamelingen en elk ander formaat waarvoor een LINQ-provider beschikbaar is, op te vragen en te transformeren.

Projectie

' sample data
Dim sample = {1, 2, 3, 4, 5}

' using "query syntax"
Dim squares = From number In sample Select number * number

' same thing using "method syntax"
Dim squares = sample.Select (Function (number) number * number)

We kunnen ook meerdere resultaten tegelijk projecteren

Dim numbersAndSquares =
    From number In sample Select number, square = number * number

Dim numbersAndSquares =
    sample.Select (Function (number) New With {Key number, Key .square = number * number})

Selecteren uit array met eenvoudige voorwaarde

Dim sites() As String = {"Stack Overflow", "Super User", "Ask Ubuntu", "Hardware   Recommendations"}
Dim query = From x In sites Where x.StartsWith("S")
' result = "Stack Overflow", "Super User"

Zoekopdracht is een opsombaar object met Stack Overflow en Super User . x in de query is een itererende variabele waarin elk object wordt opgeslagen dat is gecontroleerd door de Where clausule.

Mapping array door Select-clausule

Dim sites() As String = {"Stack Overflow", 
                         "Super User", 
                         "Ask Ubuntu", 
                         "Hardware Recommendations"}
Dim query = From x In sites Select x.Length
' result = 14, 10, 10, 24

Het zoekresultaat zal een opsombaar object zijn dat lengten van tekenreeksen in invoerarray bevat. In dit voorbeeld zijn dit de waarden 14, 10, 10, 24. x in de query is itererende variabele waarin elk object uit de invoerarray wordt opgeslagen.

Uitvoer bestellen

Dim sites() As String = {"Stack Overflow", 
                         "Super User", 
                         "Ask Ubuntu", 
                         "Hardware Recommendations"}

Dim query = From x In sites 
            Order By x.Length

' result = "Super User", "Ask Ubuntu", "Stack Overflow", "Hardware Recommendations"

De clausule OrderBy sorteert de uitvoer op basis van de waarde die uit de clausule wordt geretourneerd. In dit voorbeeld is het de lengte van elke string. Standaard uitvoervolgorde is oplopend. Als u aflopend wilt, kunt u Descending sleutelwoord na clausule opgeven.

Dim query = From x In sites
            Order By x.Length Descending

Woordenboek genereren uit IEnumerable

' Just setting up the example
Public Class A
    Public Property ID as integer
    Public Property Name as string
    Public Property OtherValue as Object
End Class

Public Sub Example()
    'Setup the list of items
    Dim originalList As New List(Of A)
    originalList.Add(New A() With {.ID = 1, .Name = "Item 1", .OtherValue = "Item 1 Value"})
    originalList.Add(New A() With {.ID = 2, .Name = "Item 2", .OtherValue = "Item 2 Value"})
    originalList.Add(New A() With {.ID = 3, .Name = "Item 3", .OtherValue = "Item 3 Value"})

    'Convert the list to a dictionary based on the ID
    Dim dict As Dictionary(Of Integer, A) = originalList.ToDictionary(function(c) c.ID, function(c) c)

    'Access Values From The Dictionary
    console.Write(dict(1).Name) ' Prints "Item 1"
    console.Write(dict(1).OtherValue) ' Prints "Item 1 Value"
End Sub

Verschillende waarden verkrijgen (met de Distinct-methode)

Dim duplicateFruits = New List(Of String) From {"Grape", "Apple", "Grape", "Apple", "Grape"}
'At this point, duplicateFruits.Length = 5

Dim uniqueFruits = duplicateFruits.Distinct();
'Now, uniqueFruits.Count() = 2
'If iterated over at this point, it will contain 1 each of "Grape" and "Apple"


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow