Aracılığıyla paylaş


Visual Basic LINQ desteği özellikleri

Adı Dil ile Tümleşik Sorgu (LINQ) teknoloji Visual Basic'te sorgu sözdizimini destekler ve dil doğrudan başka bir dil yapıları ifade eder.İle LINQ, dış veri kaynağına yönelik sorgu için yeni bir dil öğrenmek zorunda değil.Visual Basic kullanarak İlişkisel veritabanlarındaki, xml depoları veya nesnelerin veri karşı sorgulayabilirsiniz.Bu bütünleştirmesi dilinde sorgulama yetenekleri, derleme zamanı sözdizimi hataları ve tür güvenliği denetimi sağlar.Bu bütünleştirmesi, Visual Basic'te zengin, değiştirilen sorguları yazmak amacıyla bilmek zorunda çoğunu zaten biliyor da sağlar.

LINQ tanıtım belgeleri, kod örnekleri ve örnek uygulamalar okuma başlamak için etkinleştirmek için yeterli ayrıntılı destek dil yapıları aşağıdaki bölümlerde açıklanmıştır.Nasıl dil özellikleri birlikte sorgu dili tümleşik etkinleştirmek için gelir, daha ayrıntılı açıklamalarını bulmak için bağlantılar'ı da tıklatabilirsiniz.Başlamak için iyi bir yerdir İzlenecek yol: Visual Basic'te yazı sorguları.

Sorgu ifadeleri

Sorgu ifadelerde Visual Basic, sql veya XQuery benzer bir Bildirime dayanan bir sözdizimi ifade edilebilir.Derleme zamanında sorgu sözdizimi yöntem çağrıları için bir LINQ Sağlayıcısı'nın uygulamasında standart sorgu işleci uzantısı yöntemlerinin metne dönüştürülecek.Standart sorgu işleçleri ile uygun ad belirterek kapsamında olan uygulamaları denetim bir Imports ifadesi.Visual Basic sorgu ifadesinin sözdizimi aþaðýdaki gibi görünür:

Dim londonCusts = From cust In customers
                  Where cust.City = "London"
                  Order By cust.Name Ascending
                  Select cust.Name, cust.Phone

Daha fazla bilgi için bkz. LINQ Visual Basic giriş.

Örtülü olarak yazılı değişkenleri

Bildirip bir değişkenine atayacak, açıkça bir tür belirtmek yerine, derleyici gerçekleştirip ve türünü atamak etkinleştirebilirsiniz.Bu olarak bilinir Yerel tür kesmesi.

Değişkenler, türleri olayla kesinlikle, türü, açıkça belirtmeniz yalnızca değişkenler gibi yazılmalıdır.Yalnızca yerel bir değişken bir yöntem gövdesinin içinde tanımlarken yerel tür kesmesi çalışır.Daha fazla bilgi için, bkz. Seçenek gerçekleştirip deyimi ve Yerel tür kesmesi (Visual Basic).

Aşağıdaki örnekte, yerel tür kesmesi gösterilmektedir.Bu örneği kullanmak için ayarlamalısınız Option Infer için On.

' The variable aNumber will be typed as an integer.
Dim aNumber = 5

' The variable aName will be typed as a String.
Dim aName = "Virginia"

Yerel tür kesmesi de bu bölümde daha sonra açıklanan ve LINQ sorguları için gerekli olan anonim türleri oluşturmak mümkün kılmaktadır.

LINQ aşağıdaki örnekte tür kesmesi ortaya Option Infer ya On veya Off.Derleme zamanı hatası oluşur Option Infer olan Off ve Option Strict olan On.

' Query example.
' If numbers is a one-dimensional array of integers, num will be typed
' as an integer and numQuery will be typed as IEnumerable(Of Integer)--
' basically a collection of integers.

Dim numQuery = From num In numbers
               Where num Mod 2 = 0
               Select num

Nesne Başlatıcı

Bir sorgunun sonuçlarını saklamak için anonim bir tür oluşturmak zorunda, nesne başlatıcılar sorgu ifadelerde kullanılır.Sorgular dışında adlandırılmış türdeki nesnelerin başlatmak için de kullanılabilir.Bir nesne Başlatıcı kullanarak açıkça bir kurucu çağrısı yapmadan bir nesneyi tek bir satıra baþlatabilirsiniz.Adında bir sınıfınız olduğunu varsayarak Customer ortak olan Name ve Phone özellikleri, diğer özellikleri ile birlikte bir nesne Başlatıcı bu şekilde kullanılabilir:

Dim aCust = New Customer With {.Name = "Mike",
                               .Phone = "555-0212"}

Daha fazla bilgi için bkz. Nesne Başlatıcılar: Adlandırılmış ve anonim türleri (Visual Basic).

Anonim türleri

Anonim türleri, geçici olarak bir sorgu sonucunda dahil etmek istediğiniz öğenin içine bir özellikler kümesi gruplandırmak için elverişli bir yol sunar.Öğe için adlandırılmış veri türünü tanımlamadan sorgudaki herhangi bir sırada kullanılabilir alanlar herhangi bir bileşimini seçmenizi sağlar.

Bir anonim tür derleyici tarafından dinamik olarak oluşturulur.Derleyici tarafından atanmış adını yazın ve her yeni derleme ile değişebilir.Bu nedenle, adı doğrudan kullanılamaz.Anonim türleri şu şekilde başlatılır:

' Outside a query.
Dim product = New With {.Name = "paperclips", .Price = 1.29}

' Inside a query.
' You can use the existing member names of the selected fields, as was
' shown previously in the Query Expressions section of this topic.
Dim londonCusts1 = From cust In customers
                   Where cust.City = "London"
                   Select cust.Name, cust.Phone

' Or you can specify new names for the selected fields.
Dim londonCusts2 = From cust In customers
                   Where cust.City = "London"
                   Select CustomerName = cust.Name,
                   CustomerPhone = cust.Phone

Daha fazla bilgi için bkz. Anonim türleri (Visual Basic).

Uzantı yöntemleri

Uzantısı yöntemleri, veri türü veya arabirimden tanımının dışında yöntemler eklemenize olanak tanır.Bu özellik, yani türünü değiştirmeden yeni yöntemler varolan bir türünü eklemek sağlar.Standart sorgu işleçleri kendilerini sağlayan uzantısı yöntemleri konusunda LINQ işlevselliğini uygulayan herhangi bir türü için sorgu IEnumerable<T>. Other extensions to IEnumerable<T> include Count, Union, and Intersect.

Yazdırma yöntemine aşağıdaki yöntemi uzantısını ekler String sınıfı.

' Import System.Runtime.CompilerServices to use the Extension attribute.
<Extension()>
    Public Sub Print(ByVal str As String)
    Console.WriteLine(str)
End Sub

Yöntemi gibi sıradan bir örnek yöntemi çaðrýlýr String:

Dim greeting As String = "Hello"
greeting.Print()

Daha fazla bilgi için bkz. Uzantı yöntemleri (Visual Basic).

Lambda İfadeleri

Lambda ifade hesaplar ve tek bir değer döndüren bir adı olmadan bir işlevdir.Adlandırılmış işlev lambda ifade tanımlanabilir ve aynı anda yürütülen.Aşağıdaki örnek 4 görüntüler.

Console.WriteLine((Function(num As Integer) num + 1)(3))

Lambda ifade tanım atamak için bir değişken adı ve ad işlevini çağırmak için kullanın.Aşağıdaki örnek, 4 de görüntüler.

Dim add1 = Function(num As Integer) num + 1
Console.WriteLine(add1(3))

De LINQ, lambda ifadeleri standart sorgu işleçleri çoğunu underlie.Lambda ifadeleri temel sorgu yöntemleri gibi tanımlı hesaplamaları yakalamak için derleyici oluşturur Where, Select, Order By, Take Whileve diğerleri.

Örneğin, aşağıdaki kod, öğrenciler listesinden tüm Kıdemli öğrenciler döndüren bir sorgu tanımlar.

Dim seniorsQuery = From stdnt In students
                   Where stdnt.Year = "Senior"
                   Select stdnt

Sorgu tanımını bağımsız değişkenleri belirtmek için iki lambda ifadeleri kullanan aşağıdaki örneğe benzer bir kod içine derlenmiş Where ve Select.

Dim seniorsQuery2 = students.
    Where(Function(st) st.Year = "Senior").
    Select(Function(s) s)

Her iki sürümü kullanılarak çalıştırılabilir bir For Each döngü:

For Each senior In seniorsQuery
    Console.WriteLine(senior.Last & ", " & senior.First)
Next

Daha fazla bilgi için bkz. Lambda ifadeleri (Visual Basic).

Ayrıca bkz.

Başvuru

Seçenek gerçekleştirip deyimi

Option Strict deyimi

Kavramlar

LINQ ve dizeleri

C# LINQ desteği özellikleri

Diğer Kaynaklar

LINQ (dil ile bütünleşik sorgu)

Visual Basic'te LINQ ile çalışmaya başlama