Raggruppamento di dati (Visual Basic)

Il raggruppamento consiste nell'inserire i dati in gruppi in modo che gli elementi in ogni gruppo condividano un attributo comune.

Nella figura seguente vengono illustrati i risultati del raggruppamento di una sequenza di caratteri. La chiave di ogni gruppo è il carattere.

Diagram that shows a LINQ Grouping operation.

Nella sezione seguente vengono elencati i metodi degli operatori query standard che eseguono il raggruppamento degli elementi di dati.

Metodi

Nome metodo Descrizione Sintassi delle espressioni di query di Visual Basic Ulteriori informazioni
GroupBy Raggruppa gli elementi che condividono un attributo comune. Ogni gruppo è rappresentato da un oggetto IGrouping<TKey,TElement>. Group … By … Into … Enumerable.GroupBy

Queryable.GroupBy
ToLookup Inserisce gli elementi in un oggetto Lookup<TKey,TElement>, un dizionario uno-a-molti, sulla base di una funzione del selettore di chiavi. Non applicabile. Enumerable.ToLookup

Esempio di sintassi delle espressioni di query

Nell'esempio di codice seguente viene illustrato come usare la clausola Group By per raggruppare i numeri interi in un elenco a seconda che siano numeri pari o numeri dispari.

Dim numbers As New System.Collections.Generic.List(Of Integer)(  
     New Integer() {35, 44, 200, 84, 3987, 4, 199, 329, 446, 208})  
  
Dim query = From number In numbers
            Group By Remainder = (number Mod 2) Into Group  
  
Dim sb As New System.Text.StringBuilder()  
For Each group In query  
    sb.AppendLine(If(group.Remainder = 0, vbCrLf & "Even numbers:", vbCrLf & "Odd numbers:"))  
    For Each num In group.Group  
        sb.AppendLine(num)  
    Next  
Next  
  
' Display the results.  
MsgBox(sb.ToString())  
  
' This code produces the following output:  
  
' Odd numbers:  
' 35  
' 3987  
' 199  
' 329  
  
' Even numbers:  
' 44  
' 200  
' 84  
' 4  
' 446  
' 208  

Vedi anche