Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1551 | Anzahl registrierter User: 1841 | Besucher online: 140
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Doppelte Einträge aus Arraylist löschen


Autor: Tim Hartwig
Sprache: VB.NET
Bewertung: 1,8
(1 Bewertung)
Anzahl der Aufrufe: 16324
  
Kick it on dotnet-kicks.de  

Beschreibung:

Diese Funktion löscht alle Doppelten Einträge aus einer Arraylist (nicht zu verwechseln mit einem Array). Also aus AAABBBCCC wird ABC

Abgelegt unter: Doppelt, Array, Löschen.



Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Public Function KillDoubleEntries(ByRef RefArray As ArrayList) As Long
    Dim Count As Long
    For i As Long = 0 To RefArray.Count - 1
        For n As Long = i + 1 To RefArray.Count - 1
            If i <> n And (RefArray.Count - 1) >= n Then
                If RefArray(i).ToString = RefArray(n).ToString Then
                    RefArray.RemoveAt(i)
                    Count += 1
                    n -= 1
                End If
            End If
        Next
    Next
    Return Count
End Function
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

herbivore schrieb am:  17.01.2007 21:43:46

Die Funktion ist ungünstig implementiert und verursacht unnötiger Weise quadratischen, wenn nicht sogar kubischen Aufwand, obwohl man mit linearem Aufwand auskäme. Besser wäre die Elemente der Liste genau einmal durch zugehen und sich in den Keys eines Dictionary die Objekte zu merken, die bereits enthalten sind. Wenn ein Objekt noch nicht enthalten ist (was man mit !ContainsKey feststellen kann), fügt man es am Ende einer neuen Liste hinzu. Nur so erhält man linearen Aufwand. Geschachtelte Schleifen und RemoveAt verursachen dagegen quadratischen oder schlimmeren Aufwand.
ArrayList sollte durch List oder noch besser durch IList o.ä. ersetzt werden.
herbivore schrieb am:  06.02.2007 22:11:28

Auf meinen Kommentar hin, hat Khartak mittlerweile dankenswerterweise ein neues Snippet "Doppelte Arrayeinträge mit linearem Aufwand entfernen" veröffentlicht:
http://dotnet-snippets.de/dns/Snippet_detail.aspx?=435


Diese Snippets könnten für Sie interessant sein:
[C#] mehrfach vorkommende Worte entfernen
[C#] doppelte Zeilen aus DataTable löschen
[C#] Convert an ArrayList into an array
[C#] String in Byte Array und zurück wandeln
[C#] Bitmap in Byte Array schreiben
[C#] Arraylist in Textdatei schreiben
[C#] Wandelt ein Bytearray in einen Binärstring
[C#] BubbleSort Verfahren / Algorithmus
[VB.NET] Dateien nach Datum sortieren
[C#] Typ der Elemente in einem Array herausfinden
[VB.NET] Rows eines DataGridView in ein String-Array konvertieren
[VB.NET] Doppelte Arrayeinträge mit linearem Aufwand entfernen
[VB.NET] String in Byte Array und zurück wandeln
[VB.NET] Listen, Arrays, Strings konvertieren
[VB.NET] Textdatei lesen und schreiben (String, StringArray, etc...)
[VB.NET] List all controls by using the name of the controls
[C#] Datei einlesen und als ArrayList jede Zeile zurückliefern
[C#] Eine allgemeine Liste (IEnumerable) in ein Array umwandeln
[C#] long in ein byte-Array kopieren
[C#] Byte-Array in Struktur kopieren
[C#] Array zur Laufzeit erweitern
[C#] Kleine Array-Erweiterung
[VB.NET] Doppelte Eintäge löschen
[C#] SortingHelper - MoveUpInList & MoveDownInList
[C#] alle Textboxen in einer Form löschen
[C#] Verzeichnis überwachen mit dem FileSystemWatcher
[C#] alle Dateien vom gleichen Typ löschen
[VB.NET] Datei mittels Windows Dialog löschen
[VB.NET] Einen Eintrag aus der Registy löschen
[VB.NET] Registryschlüssel löschen
[C#] Console löschen
[C#] Datei in Papierkorb verschieben
[VB.NET] Ausgewählte Items in einer ListBox löschen
[C#] Dateien und Ordner rekursiv löschen
[C#] Löschen aller TextControls auf einer Form in C#
[C#] Papierkorb leeren

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.