Autor Beitrag
csharpMorpheus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Fr 18.12.09 11:06 
Hallo allesamt.

Ich möchte eine Array auf UNBESTIMMTEN Index hin initialisieren.
Das heißt, ich möchte keine "feste" Anzahl an möglichen Einträgen haben.
Bsp.:
ausblenden C#-Quelltext
1:
string strArr[3];					


In php kann ich eine Array befüllen wie ich will bzw. mit so vielen Einträgen
wie mir lieb ist ohne vorher eine feste Anzahl angeben zu müssen.
PHP:
ausblenden Quelltext
1:
myArr[] = "Irgendwas"					


Geht das in C# auch?

Danke
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 18.12.09 11:21 
Hallo!

Wenn Du sowas machen willst, nimmt man eher eine List<T> also z.B. List<string>. Die hat dann eine Add-Methode. Arrays haben eine konstante Größe und müssten zur Erweiterung komplettt kopiert werden.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 18.12.09 14:25 
Hallo,

wenn es unbedingt sein muss, geht es mit Array.Copy oder Array.CopyTo. Das ist aber wirklich (wie Christian schon sagte) nur im Ausnahmefällen ein sinnvolles Verfahren. Besser ist in aller Regel List<T>; das hat die Verfahren zur Änderung bereits eingebaut.

Jürgen
csharpMorpheus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mo 21.12.09 14:27 
Super. Danke.
Das ist genau das, was ich suchte.

Gibt es denn eine Möglichkeit, solch eine Liste, z.B. definiert als <string> zum schluss hin
vollständig zu konvertieren, sodass die array z.B. nun ein "ColumnSet" ist um sie als solches übergeben zu können?
Sonst würde ich ja den Compilerfehler "Implizite Konvertierung ..." bekommen!

Habt Ihr da noch nen kleinen Tipp für mich?

Dankeschön :-)
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 21.12.09 14:40 
Was verstehst du unter einem "ColumnSet"? Wenn es eine DataColumnCollection sein soll, ist es unmöglich, weil zu jeder DataColumn nicht nur der Name der Spalte gehört, sondern weitere Informationen (vor allem Datentyp). Wenn es irgendein String-Array sein soll, geht es mit List<T>.ToArray (was für eine Überraschung, dass es so eine Methode gibt).

Jürgen
csharpMorpheus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mo 21.12.09 14:53 
Die Funktion, welche die Liste erwartet ist in ColumnSetBase deklariert und so muss ich es auch übergeben.
Jedoch gibt es wie erwähnt keine ColumnSet.Add-Methode, daher wollte ich es mit "List" machen.
Doch dann kann ich die List nicht in ein ColumnSetBase konvertieren.

Dazu müsste man eine eigene Funktion schreiben, richtig?
Das wäre wohl die einzigste Möglichkeit ...

msdn.microsoft.com/e...ibrary/aa680889.aspx
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 21.12.09 18:00 
Danke für den Link; jetzt weiß ich, worum es geht - um MS Dynamics CRM Service, also nichts, was zum NET-Standard gehört - und dass ich dazu nichts sagen kann. Jürgen
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 21.12.09 19:34 
Die API sieht äußerst merkwürdig aus... aber egal, ist ColumnSet.Attributes denn nicht writeable :?!?: ?

_________________
>λ=
csharpMorpheus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Di 22.12.09 11:02 
Doch, sie ist writeable!
Sie hat jedoch keine Add oder Del Funktionen.
Ich kann Sie nur direkt füllen.

Und dazu brauche ich wiederum ein ColumnSet.
Dann ist es ja wieder das selbe.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 22.12.09 20:13 
user profile iconcsharpMorpheus hat folgendes geschrieben Zum zitierten Posting springen:
Ich kann Sie nur direkt füllen.
Dann mach das doch.

ausblenden C#-Quelltext
1:
columnSet.Attributes = list.ToArray();					

_________________
>λ=