Heute möchten wir Ihnen zeigen, wie man mit gleichbleibenden Aufwand schnell alle doppelten Einträge aus einer Liste entfernt. Der Datentyp selbst spielt hierbei keine Rolle, da dieser durch die neue Generic-Funktion von VB 2005 zur Laufzeit festgelegt wird. Erstellen wir uns zunächst einmal eine Liste vom Typ String mit mehrfach vorkommenden Einträgen: Dim MyList As New List(Of String) ' Liste mit 1000 Einträgen füllen For i As Integer = 1 To 1000 Dim n As Integer = Int(10 * Rnd() + 1) MyList.Add("Eintrag " & n.ToString) Next Als nächsten machen wir uns daran, eine universelle Funktion zu erstellen, die alle Duplikate einer übergebenen Liste mit beliebigem Datentyp ausfiltern: ' alle doppelten Einträge aus einer Liste entfernen Public Function DeleteDoublicates(Of Type)( _ ByVal oList As List(Of Type)) As List(Of Type) ' Neues List-Objekt, welches neu aufgebaut wird ' (ohne Duplikate!) Dim oResult As New List(Of Type) ' Dictionary erstellen Dim oDict As New Generic.Dictionary(Of Type, Type) ' Liste durchlaufen With oDict For Each oItem As Type In oList ' Falls Eintrag noch nicht im Dictionary existiert... If .ContainsKey(oItem) = False Then ' jetzt hinzufügen .Add(oItem, Nothing) ' und ebenfalls der Ergebnis-Liste hinzufügen oResult.Add(oItem) End If Next End With ' Dictionary zerstören oDict = Nothing ' Rückgabewert: Ergebnisliste = Liste ohne Duplikate Return oResult End Function Um nun alle doppelten Einträge aus unserer String-Liste zu löschen, rufen wir die Funktion wie folgt auf: ' alle doppelten Einträge entfernen MyList = DeleteDoublicates(Of String)(MyList) Um das Ganze auch testen zu können, schreiben wir den Inhalt in eine ListBox: ListBox1.Items.Clear ListBox1.Items.AddRange(MyList.ToArray) Das Löschen von Duplikaten funktioniert natürlich auch mit Integer-Listen: Dim MyNumList As New List(Of Integer) For i As Integer = 1 To 1000 Dim n As Integer = Int(10 * Rnd() + 1) MyNumList.Add(n) Next ' alle doppelten Einträge entfernen MyNumList = DeleteDoublicates(Of Integer)(MyNumList) Dieser Tipp wurde bereits 28.082 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |