[C#] Property ergänzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [C#] Property ergänzen

    Kann ich das erstellte Property um weitere Daten erweitern, sodass sogesehen mehr Daten drin sind?


    Code:
    public void crmNeuenDatensatzStapeln(string feldname, string feldwert) 
    { 
    StringProperty prop = new StringProperty(); 
    prop.Name = feldname; 
    prop.Value = feldwert; 
    
    this.dynEntity.Properties = new Property[] { prop }; 
    }
    Wie der Funktionsname schon sagt will ich diese Funktion mehrmals ausführen mit immer unterschiedlichen Parametern die
    ich übergebe und zum schluss führe ich die Funktion crmNeuenDatensatzSpeichern() aus und diese Funktion
    benötigt dann alle gestapelten Propertys in der "thiy.dynEntity.Properties" !

    Wie ergänze ich einen Property ?

    Dankeschön

  • #2
    Hallo,

    Momentan erzeugst du immer ein neues Array und überschreibst das alte, also wird nie was hinzugefügt. Da es ein Array ist und damit keine Adder-Methode (z. B. AddElement) hat, musst du den neuen Index von Hand vergeben und prop an der Stelle einfügen:

    Code:
    this.dynEntity.Properties[this.dynEntity.Properties.Length] = prop;
    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Zitat von AmicaNoctis Beitrag anzeigen
      Hallo,

      Momentan erzeugst du immer ein neues Array und überschreibst das alte, also wird nie was hinzugefügt. Da es ein Array ist und damit keine Adder-Methode (z. B. AddElement) hat, musst du den neuen Index von Hand vergeben und prop an der Stelle einfügen:

      Code:
      this.dynEntity.Properties[this.dynEntity.Properties.Length] = prop;
      Gruß,

      Amica
      Achja,

      Kommentar


      • #4
        Dennoch kann ich ohen vorherige instanzierung nicht prüfen wieviele Einträge das Property hat und somit kann ich nicht bestimmen wann er das Property erzeigen und wann nur hinzufügen soll.

        Eine Idee?

        Kommentar


        • #5
          Wofür gibt es Konstruktoren? Darin kannst du das Array als leeres Array initialisieren (nicht instanziieren!). Oder sehe ich das falsch? Ich hab keine Ahnung von C#, daher gehe ich da nur mit Logik und dem Wissen aus anderen Sprachen ran.
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Das habe ich auch schon gesucht!
            Wie bei php gibt es in C# kein __construct.
            Zumindest habe ich nichts gefunden.

            Kommentar


            • #7
              RTFM
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Es muss wohl eine Addierungsfunktion oder dergleichen geben denn ich kann
                Code:
                his.dynEntity.Properties[this.dynEntity.Properties.Length]
                nicht nutzen, da ich immer darauf hingewiesen werde, das der Index außerhalb des gültigkeitsbereiches liegt.

                Kommentar


                • #9
                  Google sagt mir, dass man Arrays umkopieren muss: Add Item to Array - C# - Snipplr

                  Wie man Google benutzt, weißt du aber? Ich habe das letzte Mal vor 5 Jahren C# gecodet, da waren die noch bei .NET Framework 1.1. Was ich dir hier also schreibe ist alles entweder geraten oder gegooglet. Warum kriegst du das dann nicht hin?
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Zitat von AmicaNoctis Beitrag anzeigen
                    Google sagt mir, dass man Arrays umkopieren muss: Add Item to Array - C# - Snipplr

                    Wie man Google benutzt, weißt du aber? Ich habe das letzte Mal vor 5 Jahren C# gecodet, da waren die noch bei .NET Framework 1.1. Was ich dir hier also schreibe ist alles entweder geraten oder gegooglet. Warum kriegst du das dann nicht hin?
                    Weil ich wohl viel zu viele andere Dinge im Kopf habe was meine Sicht auf das ganze beeinträchtigt.
                    Kurz: Ich steh einfach auf dem Schlauch

                    Edit:
                    Mensch, den Text versteh ich einfach nicht.
                    Ist es denn so schwer einfach nen neuen Index zu vergeben?
                    In php ist es ja einfach, in C# wieder mal nicht ..
                    Zuletzt geändert von phpMorpheus2; 16.12.2009, 14:52.

                    Kommentar


                    • #11
                      Denn verabschiede dich doch einfach von der Idee Array und nimm irgendeine Collection-Klasse.

                      <5 Minuten später>

                      Hab ich grad gegooglet: ArrayList-Methoden (System.Collections)

                      Jetzt ist bei mir übrigens Schluss, da deine Mitarbeit unter aller Kanone ist.
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Die Arraylist lässt nur einen Wert pro row zu!
                        Bei den StringProperty kann man .name und .value vergeben.

                        Ich werde aber mal etwas versuchen.

                        Kommentar


                        • #13
                          Aaaargh! Ich meine selbstverständlich eine ArrayList aus StringProperty-Objekten statt des momentanen Arrays aus StringProperty-Objekten
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Code:
                                    public void crmNeuenDatensatzStapeln(string feldname, string feldwert)
                                    {
                                        StringProperty prop = new StringProperty();
                                        System.Collections.ArrayList aList = new System.Collections.ArrayList();
                            
                                        prop.Name = feldname;
                                        prop.Value = feldwert;
                            
                                        aList.Add(prop);
                                        this.dynEntity.Properties = new Property[] { aList };
                                    }
                            Ich fülle nun die ArrayList mit den Property-Werten auf (mit Add).
                            Danach packe ich die gesammelte List als new Property in die dynEntity
                            (Gut, hier im Beispiel passiert das jedes mal wenn ein neues Satz geschr. wird, ist aber nur ein Beispiel)

                            Doch kann ich nicht vom Typ arraylist in typ Property übergeben.
                            Mal schaun ob man konvertieren kann...
                            Und falls ja, ob es überhaupt klappt..

                            Kommentar


                            • #15
                              Zitat von phpMorpheus2 Beitrag anzeigen
                              Ich fülle nun die ArrayList mit den Property-Werten auf (mit Add).
                              und zwar jedes Mal eine neue Instanz, also fängst du wieder bei Null an.

                              Zitat von phpMorpheus2 Beitrag anzeigen
                              Danach packe ich die gesammelte List als new Property in die dynEntity
                              Tust du nicht. Du erzeugst ein neues Property-Array (wegen der eckigen Klammern) mit einem Element und überschreibst (immer noch) das alte.

                              Du erzeugst also bei jedem Eintrag eine ArrayList mit der StringProperty drin und dann willst du diese ArrayList in ein Array einfügen, das vom Typ Property ist. Das kann doch nicht funktionieren.

                              Ändere den Typ von this.dynEntity.Properties auf [COLOR="Red"]List<StringProperty>[/COLOR] (ja, genau so, mit den eckigen Klammern) und füge die neue StringProperty mit Add ein. Fertig. ([COLOR="Red"]Edit[/COLOR])

                              Zitat von phpMorpheus2 Beitrag anzeigen
                              Doch kann ich nicht vom Typ arraylist in typ Property übergeben.
                              Daran hättest du eigentlich schon merken müssen, dass das totaler Käse ist.

                              Lerne die Grundlagen! C# - Galileo OpenBook
                              Zuletzt geändert von AmicaNoctis; 16.12.2009, 16:23. Grund: ArrayList<StringProperty> muss List<StringProperty> heißen
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X