Aggregate Tümcesi (Visual Basic)

Bir veya daha fazla toplama işlevleri toplama için geçerlidir.

Aggregate element [As type] In collection _
  [, element2 [As type2] In collection2, [...]]
  [ clause ]
  Into expressionList

Bölümleri

Terim

Tanım

element

Gerekli.Koleksiyon öğeleri boyunca yineleme yapmak için kullanılan değişken.

type

İsteğe Bağlı.Tür element.Tür yok belirtilirse, türünü element gelen olayla collection.

collection

Gerekli.Karışmayı koleksiyonu gösterir.

clause

İsteğe Bağlı.Bir veya daha fazla gibi yan tümcelerini sorgu bir Where toplam yan tümcesi veya yan tümcelerini uygulamak için sorgu sonucu iyileştirmek için yan tümcesi.

expressionList

Gerekli.Koleksiyon uygulamak üzere bir toplam işlevi tanımlayan bir veya daha fazla virgülle ayrılmış ifadeler.Sorgu sonucu için üye adı belirtmek için bir toplama işlevi için bir diğer ad uygulayabilirsiniz.Hiç diğer ad sağlanmışsa, toplama işlevinin adı kullanılır.Örnekler için bu konunun ilerisinde toplama işlevleri hakkında bölümüne bakın.

Notlar

Aggregate Yan tümcesi sorgularınızda toplama işlevleri eklemek için kullanılabilir.Toplama işlevleri, bir değerler kümesi denetler ve hesaplamaları gerçekleştirmek ve tek bir değer döndürür.Sorgu sonucu türünün üyesi kullanılarak hesaplanan değere erişebilirsiniz.The standard aggregate functions that you can use are the All, Any, Average, Count, LongCount, Max, Min, and Sum functions.Bu işlevler SQL aggregates hakkında bilgi sahibi olan geliştiriciler için tanıyorsunuz demektir.Bunlar, bu konuda aşağıdaki bölümde açıklanmıştır.

Bir toplama işlevinin sonucu sorgu sonucu sorgu sonucu türünde bir alan eklenir.Bir diğer ad için toplam değeri tutacaktır sorgu sonuç türü üyesinin adını belirtmek toplama işlevi sonuç sağlayabilir.Hiç diğer ad sağlanmışsa, toplama işlevinin adı kullanılır.

Aggregate Yan tümcesi, sorgunun başlayabilir veya sorguda ek bir yan tümcesi olarak dahil edilebilir.Aggregate Yan tümcesi başlayan bir sorgu, belirtilen toplam işlevinin sonucu olan tek bir değer sonucu Into yan tümcesi.Birden fazla toplama işlevi belirtilmezse Into yan tümcesi, sorgunun döndürdüğü her toplama işlevinde sonucunu başvuru için ayrı bir özelliğe sahip tek bir türü Into yan tümcesi.Aggregate Ek bir yan tümcesi bir sorgu olarak yan tümcesi eklenmiştir, sorgu koleksiyonunda döndürülen türü her toplama işlevinde sonucunu başvuru için ayrı bir özelliği olacak Into yan tümcesi.

Toplama işlevleri

Aşağıdaki liste ile kullanılan standart toplama işlevlerini açıklar Aggregate yan tümcesi.

İşlev

Description

All

Döndürür true koleksiyondaki tüm öğeleri belirli bir koşul; karşılamak, Aksi halde verir false.Aşağıda bir örnek verilmiştir:

Any

Döndürür true koleksiyonundaki herhangi bir öğe; belirtilen koşulu karşılayıp karşılamadığını Aksi halde verir false.Aşağıda bir örnek verilmiştir:

Average

Tüm öğeleri koleksiyonu veya koleksiyondaki tüm öğeleri için sağlanan computes ifade ortalamasını hesaplar.Aşağıda bir örnek verilmiştir:

Count

Koleksiyondaki öğe sayısını sayar.İsteğe bağlı bir sağlayabilir Boolean yalnızca bir koşulu karşılayan koleksiyon öğeleri saymak için ifade.Aşağıda bir örnek verilmiştir:

Group

Bir sonucu olarak gruplandırılmış sorgu sonuçlarını gösterir bir Group By veya Group Join yan tümcesi.Group İşlevi, yalnızca geçerli Into yan tümcesi, bir Group By veya Group Join yan tümcesi.Daha fazla bilgi ve örnekler için bkz. Group By Tümcesi (Visual Basic) ve Group Join Tümcesi (Visual Basic)

LongCount

Koleksiyondaki öğe sayısını sayar.İsteğe bağlı bir sağlayabilir Boolean yalnızca bir koşulu karşılayan koleksiyon öğeleri saymak için ifade.Sonuç olarak döndüren bir Long.Bir örnek için bkz: Count toplama işlevi.

Max

Koleksiyonundan en büyük değeri hesaplar veya koleksiyondaki tüm öğeleri için sağlanan bir ifadeyi hesaplar.Aşağıda bir örnek verilmiştir:

Min

Koleksiyonundan minimum değeri hesaplar veya koleksiyondaki tüm öğeleri için sağlanan bir ifadeyi hesaplar.Aşağıda bir örnek verilmiştir:

Sum

Koleksiyondaki tüm öğeleri toplamını hesaplar veya koleksiyondaki tüm öğeleri için sağlanan bir ifadeyi hesaplar.Aşağıda bir örnek verilmiştir:

Örnek

Aşağıdaki kod örneği nasıl kullanılacağını gösteren Aggregate için bir sorgu sonucu toplama işlevleri uygulamak için yan tümcesi.

Public Sub AggregateSample()
  Dim customers = GetCustomerList()

  Dim customerOrderTotal =
      From cust In customers
      Aggregate order In cust.Orders
      Into Sum(order.Total), MaxOrder = Max(order.Total),
      MinOrder = Min(order.Total), Avg = Average(order.Total)

  For Each customer In customerOrderTotal
    Console.WriteLine(customer.cust.CompanyName & vbCrLf &
                     vbTab & "Sum = " & customer.Sum & vbCrLf &
                     vbTab & "Min = " & customer.MinOrder & vbCrLf &
                     vbTab & "Max = " & customer.MaxOrder & vbCrLf &
                     vbTab & "Avg = " & customer.Avg.ToString("#.##"))
  Next 
End Sub

Kullanıcı tanımlı toplama işlevi oluşturma

Uzantı yöntemleri ekleyerek kendi özel toplama işlevlerini bir sorgu ifadesinde içerebilir IEnumerable türü.Özel yönteminizi sonra hesaplama veya sizin toplama işlevi başvurulan sýralanabilir koleksiyon üzerinde işlem gerçekleştirebilirsiniz.Uzantı yöntemleri hakkında daha fazla bilgi için bkz: Uzantı Yöntemleri (Visual Basic).

Örneğin, aşağıdaki kod örneği, sayıları topluluğu medyan değeri hesaplar özel bir toplama işlevi gösterir.Vardır, iki aþýrý yükleme Median uzantısı yöntemi.İlk aşırı kabul, girdi olarak bir koleksiyon türü IEnumerable(Of Double).Median Türü bir sorgu alanı için toplama işlevi adlı Double, bu yöntem çağrılır.İkinci aşırı yüklenmesini Median yöntemi herhangi bir genel tür geçirilen.Genel aşırı yüklenmesini Median yöntemine başvuran ikinci bir parametre alır Func(Of T, Double) (koleksiyonundan) bir türü için bir değer türü karşılık gelen değer olarak proje lambda ifade Double.Sonra aşırı yüklenmesini için medyan değeri hesaplaması temsilci Median yöntemi.Lambda ifadeleri hakkında daha fazla bilgi için bkz: Lambda İfadeleri (Visual Basic).

Imports System.Runtime.CompilerServices

Module UserDefinedAggregates

    ' Calculate the median value for a collection of type Double.
    <Extension()>
    Function Median(ByVal values As IEnumerable(Of Double)) As Double 
        If values.Count = 0 Then 
            Throw New InvalidOperationException("Cannot compute median for an empty set.")
        End If 

        Dim sortedList = From number In values
                         Order By number

        Dim medianValue As Double 

        Dim itemIndex = CInt(Int(sortedList.Count / 2))

        If sortedList.Count Mod 2 = 0 Then 
            ' Even number of items in list.
            medianValue = ((sortedList(itemIndex) + sortedList(itemIndex - 1)) / 2)
        Else 
            ' Odd number of items in list.
            medianValue = sortedList(itemIndex)
        End If 

        Return medianValue
    End Function 

    ' "Cast" the collection of generic items as type Double and call the  
    ' Median() method to calculate the median value.
    <Extension()>
    Function Median(Of T)(ByVal values As IEnumerable(Of T),
                          ByVal selector As Func(Of T, Double)) As Double 
        Return (From element In values Select selector(element)).Median()
    End Function 

End Module

Aşağıdaki kod örneği örnek arama sorgularını gösterir Median toplama işlevi bir koleksiyon türü üzerinde Integerve bir koleksiyon türü Double.Çağıran sorgu Median toplama işlevi türü tahsilat Double aşırı yüklenmesini çağıran Median yöntemi, girdi olarak bir koleksiyon türü kabul eden Double.Çağıran sorgu Median toplama işlevi türü tahsilat Integer genel aşırı yüklenmesini çağıran Median yöntemi.

Module Module1

    Sub Main()
        Dim numbers1 = {1, 2, 3, 4, 5}

        Dim query1 = Aggregate num In numbers1 Into Median(num)

        Console.WriteLine("Median = " & query1)

        Dim numbers2 = {1.9, 2, 8, 4, 5.7, 6, 7.2, 0}

        Dim query2 = Aggregate num In numbers2 Into Median()

        Console.WriteLine("Median = " & query2)
    End Sub 

End Module

Ayrıca bkz.

Başvuru

Select Tümcesi (Visual Basic)

From Tümcesi (Visual Basic)

Where Tümcesi (Visual Basic)

Group By Tümcesi (Visual Basic)

Kavramlar

Visual Basic'de LINQ'e Giriş

Diğer Kaynaklar

Sorgular (Visual Basic)