Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst VB.Net - Frage zu SortedList

Mitglied: emeriks

emeriks (Level 4) - Jetzt verbinden

26.02.2014 um 15:19 Uhr, 1491 Aufrufe, 2 Kommentare, 1 Danke

Hi,
habe mal ne Frage zum Verständnis von "for each" im Zusammenhang mit "SortedList" in VB.Net.

Wenn ich die Elemente einer Liste durchlaufe und dabei ein Element lösche, dann "springt der Zeiger". Das weiß ich und kann auch damit umgehen, jedoch weiß ich nicht, ob das nicht noch einfacher geht.

Beispiel: Habe eine Liste mit unbekannten Schlüsseln aber bekannten Werten.
01.
Dim x As New SortedList 
02.
x.Add("unbekannter Key A", "Buchstabe A") 
03.
x.Add("unbekannter Key B", "Buchstabe B") 
04.
x.Add("unbekannter Key C", "Buchstabe C") 
05.
x.Add("unbekannter Key D", "Buchstabe D")
Wenn ich die Elemente durchlaufe, nach einem Element "Buchstabe C" oder "Buchstabe D" suche und diese dann lösche, dann fliegt mir der Code im Beispiel 1 nach dem Löschen von "Buchstabe C" beim "Next" raus.
01.
For Each y As DictionaryEntry In x 
02.
  If y.Value = "Buchstabe C" Or y.Value = "Buchstabe D" Then 
03.
    x.Remove(y) 
04.
  Else 
05.
    MsgBox(y) 
06.
  End If 
07.
Next
Alternativ über den Key. Hier kommt der Fehler auch beim "Next" wenn "Buchstabe C" gelöscht wurde.
01.
For Each k As String In x.Keys 
02.
  Dim y As String = x(k) 
03.
  If y = "Buchstabe C" Or y = "Buchstabe D" Then 
04.
    x.Remove(k) 
05.
  Else 
06.
    MsgBox(y) 
07.
  End If 
08.
Next
Lösen tue ich das so, indem ich in einem ersten Durchlauf zunächst alle Keys der zu löschenden Elemente in einer Liste sammle und dann in einem zweiten Durchlauf die Elemente laut der gesammelten Liste lösche.
01.
Dim ToRemove As New List(Of String) 
02.
For Each k As String In x.Keys 
03.
  Dim y As String = x(k) 
04.
  If y = "Buchstabe C" Or y = "Buchstabe D" Then 
05.
    ToRemove.Add(k) 
06.
  Else 
07.
    MsgBox(y) 
08.
  End If 
09.
Next 
10.
For Each k As String In ToRemove 
11.
  x.Remove(k) 
12.
Next

Geht das nicht auch einfacher?

E.
Mitglied: colinardo
LÖSUNG 26.02.2014, aktualisiert um 18:32 Uhr
Hallo Emeriks,
Geht das nicht auch einfacher?
z.B. so
01.
x.RemoveAt(x.IndexOfValue("Buchstabe C")) 
02.
x.RemoveAt(x.IndexOfValue("Buchstabe D"))
oder so wenn doch mehrere Sachen zu entfernen sind mit Array für die Strings...
01.
Dim arr As String() = {"Buchstabe C", "Buchstabe D"} 
02.
For Each el As String In arr 
03.
    x.RemoveAt(x.IndexOfValue(el)) 
04.
Next
Grüße Uwe
Bitte warten ..
Mitglied: emeriks
26.02.2014 um 16:15 Uhr
Ja, nee is klar ....
Danke!
Bitte warten ..
Ähnliche Inhalte
Visual Studio
Variablen in VB.NET
gelöst Frage von MarcoBornVisual Studio4 Kommentare

Hallo Forum, in VB.NET gibt es ja die Möglichkeit, Variablen global oder lokal zu definieren. Zusätzlich können Variablen auch ...

Visual Studio

Automatische Treiberinstallation mit VB.NET

gelöst Frage von joehuabaVisual Studio3 Kommentare

Hallo Zusammen, Folgende Problemstellung: 1. Ich habe einen Rechner per Hand neu installiert, da fehlen einige Treiber 2. Ich ...

Visual Studio

Netzwerkdrucker installieren, vb.net

gelöst Frage von Tealk144Visual Studio

Hallo Leute, also nach langem Tüfteln habe ich jetzt einen Funktionierenden Drucker installationscode, den ich gerne mit euch teilen ...

Visual Studio

VB.Net - Datagridview Objekt Update

gelöst Frage von PatrickB90Visual Studio1 Kommentar

Guten Morgen zusammen, als neu Einsteiger im Bereich VB.Net steh ich grade vor einem Problem. In einer Form wurde ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 3 StundenWindows 102 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 6 StundenAdministrator.de Feedback10 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 23 StundenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...