Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

23.14. System.Collections.Generic.HashSet(Of T)

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

23.14.1. System.Collections.Generic.HashSet(Of T)

Indien je van een verzameling van unieke waardes ("set") unies, doorsnedes en verschillen wil maken van of met andere sets, kan je aan de slag met het type System.Collections.Generic.HashSet(Of T).

De elementen van een HashSet(Of T) zijn uniek en niet gesorteerd.

Enkele set operaties worden in onderstaand voorbeeld geïllustreerd :
Visual Basic 2012 Broncode - Codevoorbeeld 610
Option Strict On
Option Explicit Off

Imports System.Collections
Imports System.Collections.Generic
Imports System.Linq

Public Class HashSetOfTExample
    Public Shared Sub Main()
        Dim hashSet1 As New HashSet(Of Integer)(New Integer() {2, 4, 6, 8})
        '
        Dim list1 As IEnumerable(Of Integer) = New Integer() {6, 7, 8, 9}
        Dim list2 As IEnumerable(Of Integer) = New Integer() {2, 4, 8}
        Dim list3 As IEnumerable(Of Integer) = New Integer() {2, 4, 6}
        Dim list4 As IEnumerable(Of Integer) = New Integer() {2}
        '
        hashSet1.IntersectWith(list1)
        Print(hashSet1) ' 6 8
        '
        hashSet1.UnionWith(list2)
        Print(hashSet1) ' 4 2 6 8
        '
        hashSet1.ExceptWith(list1)
        Print(hashSet1) ' 4 2
        '
        Console.WriteLine(hashSet1.IsSubsetOf(list3))   ' True
        Console.WriteLine(hashSet1.IsSupersetOf(list4)) ' True
        '
        Console.ReadLine()
    End Sub
    Public Shared Sub Print(ByVal collection As IEnumerable)
        For Each element As Object In collection
            Console.Write(element.ToString() & " ")
        Next
        Console.WriteLine()
    End Sub
End Class
Console Application Output
6 8
4 2 6 8
4 2
True
True

23.14.2. LINQ Set Operations

Een aantal van de in bovenstaand voorbeeld gedemonstreerde set operaties kunnen we ook aan de hand van LINQ query methods :
Visual Basic 2012 Broncode - Codevoorbeeld 611
Public Class LINQSetOperationsExample
    Public Shared Sub Main()
        Dim list0 As IEnumerable(Of Integer) = New Integer() {2, 4, 6, 8}
        '
        Dim list1 As IEnumerable(Of Integer) = New Integer() {6, 7, 8, 9}
        Dim list2 As IEnumerable(Of Integer) = New Integer() {2, 4, 8}
        Dim list3 As IEnumerable(Of Integer) = New Integer() {2, 4, 6}
        Dim list4 As IEnumerable(Of Integer) = New Integer() {2}
        '
        list0 = list0.Intersect(list1)
        Print(list0) ' 6 8
        '
        list0 = list0.Union(list2)
        Print(list0) ' 4 2 6 8
        '
        list0 = list0.Except(list1)
        Print(list0) ' 4 2
        '
        Console.ReadLine()
    End Sub
    Public Shared Sub Print(ByVal collection As IEnumerable)
        For Each element As Object In collection
            Console.Write(element.ToString() & " ")
        Next
        Console.WriteLine()
    End Sub
End Class
Console Application Output
6 8
6 8 2 4
2 4
Vergeet niet dat dit extension methods uit de System.Linq namespace zijn, en bijgevolg een Imports naar deze namespace nodig is.

Type HashSet(Of T) heeft echter meer set operaties dan voorzien zijn in LINQ, en is zo ontworpen dat deze sneller zullen zijn.

Voor meer details vind je in topic over extension method, query methods en LINQ.

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.