Entwickler-Ecke

C# - Die Sprache - Property nach und nach füllen?


csharpMorpheus - Mi 16.12.09 15:58
Titel: Property nach und nach füllen?
Kann ich das erstellte Property um weitere Daten erweitern, sodass sogesehen mehr Daten drin sind?

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
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


danielf - Mi 16.12.09 16:11

Bei Zeile 7 überschreibst du jedes mal den alten "Stapel".

Was du willst ist, dem Stapel was hinzuzufügen.

C#-Quelltext
1:
this.dynEntity.Properties.Add( prop );                    


csharpMorpheus - Mi 16.12.09 16:23

user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
Bei Zeile 7 überschreibst du jedes mal den alten "Stapel".

Was du willst ist, dem Stapel was hinzuzufügen.

C#-Quelltext
1:
this.dynEntity.Properties.Add( prop );                    


Es gibt dort kein ADD !


csharpMorpheus - Do 17.12.09 15:48

Kann mir niemand helfen?


Christian S. - Do 17.12.09 16:32

Kannst Du die Definiton von "Properties" ändern, also dass das von einem anderen Typ ist als ein Array?


Ralf Jansen - Do 17.12.09 18:15

Wenn Properties zwingend ein Array sein muss, was äußerst unglücklich wäre für etwas das man dynamisch regelmäßig erweitern möchte, so bleibt dir keine anderer Weg als jedesmal eine neues Array zu erzeugen und alle alten Werte + den neuen hinzukopieren. Da würde ich dann als Zwischenschritt eine generische Liste nehmen um die alten Werte einfach in die Liste zu bekommen. Geschickter wäre es aber wenn dynEntity.Properties selbst bereits ein entsprechender Datentyp wäre und kein Array.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
StringProperty prop = new StringProperty();
prop.Name = feldname;
prop.Value = feldwert;

List<Property> properties = new List<string>(this.dynEntity.Properties);
properties.Add(prop)

this.dynEntity.Properties = properties.ToArray();