Items aus einer Liste ansprechen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey


    Ich hab eine Liste gemacht in der beim Serverstart alle Häuser geladen werden.

    C
    public static List<House> Haeuser = new List<House>();



    Die Klasse "House" sieht wie folgt aus:


    Wenn ich nun das Haus update und es daher neu Laden möchte hab ich momentan folgendes gemacht um das "alte" Haus zu löschen:

    C
    foreach (var hous in Haeuser)
                {
                    if (hous.dbid == id)
                    {
                        API.shared.deleteEntity(hous.label);
                        API.shared.deleteEntity(hous.marker); 
                        Haeuser.Remove(hous); 
                    }
                }


    Gibt es nun irgend eine "einfachere" Möglichkeit das Item aus der Liste zu bekommen ohne das ich mit foreach alle Häuser durchlaufen muss? Das ich vielleicht speziell nach der "dbid" suchen kann oderso?

  • Was du auf jedenfall machen kannst ist eine funktion schreiben um die id aus der dbid heraus zu erhalten. Dann geht das ganze etwas schneller und du musst iwann mal eine schleife ändern und nicht hunderte.

  • Also ca so:

    C
    Dictionary<int, House> Houses = new Dictionary<int, House>();


    Wie spreche ich dann beim hinzufügen von einem neuen Haus die Objekte in der "House" Klasse an?


    Aktuell funktionierts ja so:

    C
    House haus = new House(); 
    haus.name = "blabla"; 
    haus.preis = 5000; 
    Haeuser.Add(haus);


    // Edit: Ok habs :D
    Danke das Dictionary ist wirklich praktischer :)

    Einmal editiert, zuletzt von SaschaMois ()

  • Du kannst ein Dictionary verwenden, es benutzt das KeyValue Prinzip das wäre in dem Fall am einfachsten :)

    wozu?



    jetzt aus'm Kopf geschrieben, hab leider keine gescheite Umgebung hier. Würde dir grundsätzlich empfehlen ein Repository in Erwägung zu ziehen.


    edit:


    Ich hab eine Liste gemacht in der beim Serverstart alle Häuser geladen werden.

    wieso?

    Einmal editiert, zuletzt von TutNichts ()

  • Wie gesagt es ist am einfachsten und noch dazu die schnellste/resourcen sparende Methode

  • Also ich hab´s jetzt mit dem Dictionary gemacht.
    Hauptsächlich aus dem Grund weil ich dann folgendes machen kann:

    C
    if(Houses.ContainsKey(id)) 
    {
        // existiert
    }


    @TutNichts Wieso ich speziell ne Liste gemacht hab oder warum ich das überhaupt irgndwo speichern möchte?
    Der ursprüngliche Hauptgrund für die Liste war das ich dann die TextLabels und Marker gut löschen kann wenn das Haus aktualisiert wird. Des weiteren habe ich angenommen das es eventuell etwas schneller geht als wenn der jedes mal wenn ich irgendwas mit dem Haus mache das alles von der Datenbank abfragen muss.