From Tümcesi (Visual Basic)

Bir veya daha fazla aralık değişkeni ve sorgu için bir koleksiyon belirtir.

Sözdizimi

From element [ As type ] In collection [ _ ]  
  [, element2 [ As type2 ] In collection2 [, ... ] ]  

Parça

Süre Tanım
element Gerekli. Koleksiyonun öğeleri arasında yineleme yapmak için kullanılan bir aralık değişkeni. Bir aralık değişkeni, sorgu aracılığıyla yinelendiğinde öğesinin collection her üyesine başvurmak collectioniçin kullanılır. Numaralandırılabilir bir tür olmalıdır.
type isteğe bağlı. türü.element Belirtilmezse type , türü element türünden collectionçıkarılır.
collection Gerekli. Sorgulanacak koleksiyona başvurur. Numaralandırılabilir bir tür olmalıdır.

Açıklamalar

From yan tümcesi, bir sorgunun kaynak verilerini ve kaynak koleksiyondaki bir öğeye başvurmak için kullanılan değişkenleri tanımlamak için kullanılır. Bu değişkenler aralık değişkenleri olarak adlandırılır. From Yan tümcesi sorgu için gereklidir, ancak Aggregate yan tümcesi yalnızca toplu sonuçları döndüren bir sorguyu tanımlamak için kullanılır. Daha fazla bilgi için bkz . Aggregate Yan Tümcesi.

Birleştirilecek birden çok From koleksiyonu tanımlamak için sorguda birden çok yan tümce belirtebilirsiniz. Birden çok koleksiyon belirtildiğinde, bunlar bağımsız olarak yinelenir veya ilişkiliyse bunlara katılabilirsiniz. Yan tümcesini Select kullanarak veya veya Group Join yan tümcelerini kullanarak Join koleksiyonları örtük olarak birleştirebilirsiniz. Alternatif olarak, tek From bir yan tümcede birden çok aralık değişkeni ve koleksiyon belirtebilirsiniz; ilgili her aralık değişkeni ve koleksiyonu diğerlerinden virgülle ayrılmıştır. Aşağıdaki kod örneği yan tümcesi From için her iki söz dizimi seçeneğini gösterir.

' Multiple From clauses in a query.
Dim result = From var1 In collection1, var2 In collection2

' Equivalent syntax with a single From clause.
Dim result2 = From var1 In collection1
              From var2 In collection2

From yan tümcesi, bir döngünün kapsamına benzer bir sorgunun For kapsamını tanımlar. Bu nedenle, sorgu kapsamındaki her element aralık değişkeninin benzersiz bir adı olmalıdır. Sorgu için birden çok From yan tümce belirtebildiğiniz için, sonraki From yan tümceler yan tümcesindeki From aralık değişkenlerine veya önceki From yan tümcedeki aralık değişkenlerine başvurabilir. Örneğin, aşağıdaki örnekte ikinci yan tümcedeki koleksiyonun birinci yan tümcedeki aralık değişkeninin özelliğini temel aldığı iç içe From bir yan tümce gösterilmektedir.

Dim allOrders = From cust In GetCustomerList()
                From ord In cust.Orders
                Select ord

Her From yan tümceyi, sorguyu daraltmak için ek sorgu yan tümcelerinin herhangi bir bileşimi takip edebilir. Sorguyu aşağıdaki yollarla daraltabilirsiniz:

  • ve Select yan tümcelerini kullanarak veya veya Group Join yan tümcelerini kullanarak FromJoin birden çok koleksiyonu örtük olarak birleştirin.

  • Where Sorgu sonucunu filtrelemek için yan tümcesini kullanın.

  • Yan tümcesini Order By kullanarak sonucu sıralayın.

  • yan tümcesini kullanarak benzer sonuçları birlikte gruplandırın Group By .

  • Sorgu sonucunun Aggregate tamamı için değerlendirilecek toplama işlevlerini tanımlamak için yan tümcesini kullanın.

  • Let Değeri koleksiyon yerine bir ifade tarafından belirlenen bir yineleme değişkeni eklemek için yan tümcesini kullanın.

  • Yinelenen sorgu sonuçlarını yoksaymak için yan tümcesini Distinct kullanın.

  • , , TakeSkip Whileve Take While yan tümcelerini kullanarak döndürülecek sonucun Skipbölümlerini tanımlayın.

Örnek

Aşağıdaki sorgu ifadesi, koleksiyondaki her Customer nesne için bir aralık değişkeni cust bildirmek üzere bir From yan tümcesi customers kullanır. Where yan tümcesi, belirtilen bölgedeki müşterilerle çıkışı kısıtlamak için aralık değişkenini kullanır. döngü, For Each sorgu sonucundaki her müşterinin şirket adını görüntüler.

Sub DisplayCustomersForRegion(ByVal customers As List(Of Customer),
                              ByVal region As String)

    Dim customersForRegion = From cust In customers
                             Where cust.Region = region

    For Each cust In customersForRegion
        Console.WriteLine(cust.CompanyName)
    Next
End Sub

Ayrıca bkz.