Structure Product
Public Company As String
Public Weight As Double
Public TrackingNumber As Long
End Structure
Public Class Example
Public Shared Sub Main()
Dim packages As New System.Collections.Generic.List(Of Product)(New Product() _
{New Product With {.Company = "A", .Weight = 25.2, .TrackingNumber = 1L}, _
New Product With {.Company = "B", .Weight = 18.7, .TrackingNumber = 2L}, _
New Product With {.Company = "C", .Weight = 6.0, .TrackingNumber = 3L}, _
New Product With {.Company = "D", .Weight = 9.3, .TrackingNumber = 4L}, _
New Product With {.Company = "E", .Weight = 33.8, .TrackingNumber = 5L}})
Dim lookup As ILookup(Of Char, String) = packages.ToLookup(Function(ByVal p) Convert.ToChar(p.Company.Substring(0, 1)), _
Function(ByVal p) p.Company & " " & p.TrackingNumber)
For Each packageGroup As IGrouping(Of Char, String) In lookup
Console.WriteLine(packageGroup.Key)
For Each str As String In packageGroup
Console.WriteLine(str)
Next
Next
Dim count As Integer = lookup.Count
Dim cgroup As System.Collections.Generic.IEnumerable(Of String) = lookup("C"c)
For Each str As String In cgroup
Console.WriteLine(str)
Next
Dim hasG As Boolean = lookup.Contains("G"c)
End Sub
End Class