C-sharp List verschiedene Bedingungen
Hallo liebe Administratoren,
ich habe eine Liste vom Typ eines Objektes. Diese Liste wird (de)serialisiert, um die Daten zu speichern und zu öffnen, dass geschieht über XML. Soweit gibt es keine Probleme damit. Das Objekt besteht aus 2 Eigenschaften (Strings).
Wenn der Benutzer der Liste nun ein neues Objekt hinzufügt, soll geschaut werden, ob es schon einen Eintrag mit dem selben Namen in der Liste gibt. Also in einer SQL Datenbank würde ich diese Property auf Unique setzten, aber in C# muss ich ja erst abfragen, ob es diesen Wert schon gibt.
Und wie kann man dann ein einziges Objekt anhand eines Wertes wieder löschen?
Mit freundlichen Grüßen
ich habe eine Liste vom Typ eines Objektes. Diese Liste wird (de)serialisiert, um die Daten zu speichern und zu öffnen, dass geschieht über XML. Soweit gibt es keine Probleme damit. Das Objekt besteht aus 2 Eigenschaften (Strings).
Wenn der Benutzer der Liste nun ein neues Objekt hinzufügt, soll geschaut werden, ob es schon einen Eintrag mit dem selben Namen in der Liste gibt. Also in einer SQL Datenbank würde ich diese Property auf Unique setzten, aber in C# muss ich ja erst abfragen, ob es diesen Wert schon gibt.
Und wie kann man dann ein einziges Objekt anhand eines Wertes wieder löschen?
Mit freundlichen Grüßen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 325124
Url: https://administrator.de/contentid/325124
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
5 Kommentare
Neuester Kommentar
Oder man nimmt als Array ein Objekt vom Typ Hashtable, Collection oder ArrayList. Die bieten alle Funktionen um abzufragen ob ein bestimmter Key schon existiert und auch um Einträge wieder aus der Collection zu löschen.
Gruß und ein erfolgreiches Jahr 2017
mik
Gruß und ein erfolgreiches Jahr 2017
mik
Zitat von @ErikM87:
Welche Funktionen bieten Collection oder Arraylist um einen bestimmten Key zu prüfen ?
Welche Funktionen bieten Collection oder Arraylist um einen bestimmten Key zu prüfen ?
Collection.Contains()
Arraylist.Contains()
etc.
Jede dieser Arrays bietet auch die Möglichkeit eigene Find-Routinen mit einem IComparer zu koppeln.
Aus einer Hashtable lässt sich leicht auch wieder was serialisierbares wandeln.
Also alles in allem jede Menge Möglichkeiten. Wie immer führen viele Wege nach Rom
Linq ist zwar schön und gut, aber im Vergleich doch ziemlich langsam.
An seiner Stelle würde ich das alles gleich in einer Klasse kapseln.
Denke diese Denkantstöße sollten dem TO reichen.
Du könntest deine Daten in ein Dictionary<string, string> einlesen und den neuen Wert hinzufügen. Wäre genau der gleiche Wert bereits vorhanden wirft es einen Fehler (muss also mit Try/Catch abgefangen werden)
Bei Namen aber eher unbrauchbar:
Hans Zimmer
Hans Hinterseher => Error
Oder in eine List<T> einlesen den neuen Wert ergänzen und mit .Distinct() wieder zurück schreiben
Grüße
Mayho
Bei Namen aber eher unbrauchbar:
Hans Zimmer
Hans Hinterseher => Error
Oder in eine List<T> einlesen den neuen Wert ergänzen und mit .Distinct() wieder zurück schreiben
Grüße
Mayho