Autor Beitrag
JayK
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1013



BeitragVerfasst: Do 04.08.05 15:41 
Hallo,

wie deklariert man in C# ein dynamisches array ud wie geht man damit um (Länge setzen, etc. ...)
Hab schon gegoogelt und hier im Forum gesucht aber nix gefunden.

Schonmal Danke im vorraus,
JayK


Moderiert von user profile iconraziel: Topic aus .NET verschoben am Sa 17.09.2005 um 22:09
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Do 04.08.05 16:34 
C# kennt keine dynamischen Arrays, so wie Delphi.NET. Da musst du wohl mit ArrayList und vielen Typecasts dich durchmogeln, dann das Array ist in C# in dem Sinne statisch als dass man die Größe nach dem (dynamischen) Erstellen nicht verändern kann, ohne ein neues Array anzulegen, die Daten zu kopieren und das neue Array zu nutzen.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
MyObj[] myArray = new MyObj[10];
// ...
MyObj[] temp = new MyObj[11];
myArray.CopyTo(temp, 0);
myArray = temp;



Für irgendwas muss ja Delphi.NET gut sein
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  MyArray: array of MyObj;
begin
  SetLength(MyArray, 10);
  // ...
  SetLength(MyArray, 11);
end;


Moderiert von user profile iconraziel: Code- durch C#-Tags ersetzt

_________________
Ist Zeit wirklich Geld?
Speedmaster
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 79

Windows XP
C#, VS2005 / VS2008
BeitragVerfasst: Mi 10.08.05 18:15 
Natürlich sind Dynamische Arrays möglich, auch wenn sie keine normalen Arrays mehr sind sondern Collections.
Dazu einfach System.Collections einbinden. Unter Spezialized gibt es ein paar Vorgaben, um eigene zu erstellen benutzt du System.Collections.CollectionBase.
Ein Beispiel gibts dazu auf MSDN, und wenn du #develop hast kannst du es sogar automatisch erzeugen lassen!
Marauder
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 72



BeitragVerfasst: Do 18.08.05 11:29 
Dynamische arrays können auch in c# mit new erzeugt werden:


ausblenden C#-Quelltext
1:
2:
int[] myIntArray
myIntArray = new int[5] { 12345 };


auf die art in etwa..

Moderiert von user profile iconChristian S.: Code-Tags hinzugefügt.
Moderiert von user profile iconraziel: Code- durch C#-Tags ersetzt
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Do 18.08.05 12:01 
@Marauder: das ist schon klar - so gesehen gibt es in C# eigentlich nur dynamische Arrays. ABER, wie änderst du zur Laufzeit die Länge dieses Arrays, ohne den Inhalt zu löschen?

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
Marauder
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 72



BeitragVerfasst: Do 18.08.05 18:07 
ja, da hast du recht, motzi, so richtig dynamische arrays gehen nur über die klasse arraylist
und damit über collections...

bäh... diese primitiven hochsprachen... :wink: drum mach ich delphi...
UC-Chewie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 531

WinXP
D5 Ent
BeitragVerfasst: Do 18.08.05 18:14 
user profile iconMarauder hat folgendes geschrieben:
bäh... diese primitiven hochsprachen... :wink: drum mach ich delphi...


Oh ja, ich setz lieber jedesmal die Länge manuell hoch, als eine Klasse zu verwenden, die dies transparent, automatisch und bei Bedarf tut :roll:

_________________
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
Marauder
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 72



BeitragVerfasst: Do 18.08.05 22:01 
@UC-Chewie:

Mein letzter Post war etwas Sarkasmus gepaart mit einer Prise Ironie...

Nimm das doch nicht so ernst :wink:
UC-Chewie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 531

WinXP
D5 Ent
BeitragVerfasst: Fr 19.08.05 09:27 
user profile iconMarauder hat folgendes geschrieben:
@UC-Chewie:

Mein letzter Post war etwas Sarkasmus gepaart mit einer Prise Ironie...

Nimm das doch nicht so ernst :wink:


Das hoffe ich doch. Aber nicht wenige hier im Forum denken wirklich so :roll:

_________________
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
Marauder
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 72



BeitragVerfasst: Fr 19.08.05 10:35 
Tja... lass Ihnen ein wenig Zeit :wink: Sie sind halt noch jung...
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Di 27.09.05 12:40 
user profile iconAndyB hat folgendes geschrieben:
C# kennt keine dynamischen Arrays, so wie Delphi.NET. Da musst du wohl mit ArrayList und vielen Typecasts dich durchmogeln, dann das Array ist in C# in dem Sinne statisch als dass man die Größe nach dem (dynamischen) Erstellen nicht verändern kann, ohne ein neues Array anzulegen, die Daten zu kopieren und das neue Array zu nutzen.
...
Für irgendwas muss ja Delphi.NET gut sein
Dann kannst du mir sicher auch erklären, wie D.Net das machen will ohne den Array zu kopieren? :gruebel:
Ich konter da glatt mit "Why SetLength is evil?" :P
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Mo 03.10.05 17:24 
Öhm... darf ich mal anmerken, dass der Thread trotz mehrerer Lösungsvorschläge[1] immer noch als offene Frage in der Liste steht? :angel:

[1]welche aus Containerklassen oder einem schlichten Nein bestehen
JayK Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1013



BeitragVerfasst: Mo 03.10.05 22:35 
Sorry, ich hatte den Thread vergessen, weil ich das Projekt, wo ich das gebraucht hätte, verworfen habe. ;-)