none
Daten einer Klasse in ein Objekt speichern RRS feed

  • Frage

  • Hallo,

    ich möchte die Daten einer Klasse Z.B. "Auto" in einem Objekt "Collection" speichern.

    In meiner Klasse habe ich Z.B. 2 Eigenschaften definiert:

    class Auto

    {

         private string farbe = String.empty,

         private string Model = string.empty;

        

    möchte ich alle  Daten in einer Collection speichern.

    Es sollte so aus sehen:

             mycollection.farbe[i] =  "schwarz";

             mycollection.Model[i] = "GT45";

     aber  kriege ich nicht über List, Dictionary oder Arraylis. Ich kann die Daten einfach über Collection.Add(daten) speichern,  aber dann kann ich mein Collection nicht über die Eigenschaften abfragen: collection.farb[1] sondern collection[1]

    Ich kann die Eigenschaften(farbe und Model) nicht mit collection verbinden, oder ist es überhaupt falsch.

    MFG

    mmx2010

    Donnerstag, 3. April 2014 07:39

Antworten

  • Hallo,
    du machst nur etwas an der Syntax falsch. Hier ist mal ein Beispiel für eine List<T>:
    List<Auto> autos=new  List<Auto>();
    autos.Add(myAuto);
    string modelOfAuto1 = autos[0].Model;
    Du musst also zunächst eine Liste initialisieren. Das geht bei allen Typen sehr ähnlich. Grundsätzlich gibt es diese 3 Formen:
    Auto[] array = new Auto[5];//ein normales Arrray mit 5 Elementen
    List<Auto> list = new List<Auto>();//Eine dynamisch erweiterbare Liste
    Dictionary<int,Auto> list = new Dictionary<int,Auto>();//Ein dynamisch erweiterbares Wörterbuch mit einem Integer als eindeutigen Zugriffsschlüssel
    Alle außer dem Array haben die Add-Methode mit der man ein Element hinzufügen kann. Zugreifen kannst du auf ein einzelnes Element mit dem Indexer. Dieser muss direkt hinter dem Namen der Liste/Array stehen:
    var auto1 = list[0];//1. Auto abrufen
    auto1.Model = "Model";//Wert zuweisen
    
    Zusammen gefasst geht es auch:
    list[0].Model = "Model";//Model des 1. Elements zuweisen




    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Donnerstag, 3. April 2014 07:46
    Moderator

Alle Antworten

  • Hallo,
    du machst nur etwas an der Syntax falsch. Hier ist mal ein Beispiel für eine List<T>:
    List<Auto> autos=new  List<Auto>();
    autos.Add(myAuto);
    string modelOfAuto1 = autos[0].Model;
    Du musst also zunächst eine Liste initialisieren. Das geht bei allen Typen sehr ähnlich. Grundsätzlich gibt es diese 3 Formen:
    Auto[] array = new Auto[5];//ein normales Arrray mit 5 Elementen
    List<Auto> list = new List<Auto>();//Eine dynamisch erweiterbare Liste
    Dictionary<int,Auto> list = new Dictionary<int,Auto>();//Ein dynamisch erweiterbares Wörterbuch mit einem Integer als eindeutigen Zugriffsschlüssel
    Alle außer dem Array haben die Add-Methode mit der man ein Element hinzufügen kann. Zugreifen kannst du auf ein einzelnes Element mit dem Indexer. Dieser muss direkt hinter dem Namen der Liste/Array stehen:
    var auto1 = list[0];//1. Auto abrufen
    auto1.Model = "Model";//Wert zuweisen
    
    Zusammen gefasst geht es auch:
    list[0].Model = "Model";//Model des 1. Elements zuweisen




    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Donnerstag, 3. April 2014 07:46
    Moderator
  • Hallo,

    vielen Dank, supper, ich werde ausprobieren.

    Donnerstag, 3. April 2014 09:15