Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   C# dynamische Arrays? (https://www.delphipraxis.net/57755-dynamische-arrays.html)

faux 25. Nov 2005 21:50


dynamische Arrays?
 
Hallo!

Gibts in C# eigentlich dynamische Arrays? Soweit ich mich erinnere nämlich nicht.
Wie löst man sonst das Problem, dass man in einer Schleife jedes mal einen Wert hinzufügt?

Grüße
Faux

malo 25. Nov 2005 22:02

Re: dynamische Arrays?
 
Geht sowas nicht?
Code:
int[] a = new int[];
Das klappt auf jeden Fall, wenn man die Werte vorinitalisiert (Beispielcode in meiner Sprachreferenz). Dieser Version hab ich jedoch exakt so nicht ausprobiert. sollte aber funktionieren, oder?

faux 25. Nov 2005 22:08

Re: dynamische Arrays?
 
Kannst mir mal ein Beispiel geben, wie ich den Array anspreche?
Im Prinzip will ich sowas machen (nur halt in C# :mrgreen:):
Delphi-Quellcode:
var
  werte: array of integer;
  i: integer;
begin
  for i := 0 to x do
  begin
    SetLength(werte, Length(werte)+1);
    werte[i] = 2^i;
  end;
end;
Also ich hab eine Schleife, deren ende ich noch nicht weiß, und berechne jeden Durchlauf einen Wert.

Grüße
Faux

Elvis 25. Nov 2005 22:10

Re: dynamische Arrays?
 
Zitat:

Zitat von malo
Geht sowas nicht?
Code:
int[] a = new int[];

Nope geht nicht.
.Net kennt keine dyn. Arrays. Jede Instanz eines Array ist per Definition fixed size.
Zitat:

Zitat von faux
Wie löst man sonst das Problem, dass man in einer Schleife jedes mal einen Wert hinzufügt?

Garantiert nicht mit einem Array. :mrgreen:

Schaue dir mal S.C.G.List<> oder S.C.G.LinkedList<> an.
Nachtrag:
Zitat:

Delphi-Quellcode:
for i := 0 to x do
begin
  SetLength(werte, Length(werte)+1);

Oh ja, am besten 5.000 mal, sind ja nur 5.000 Kopieroperationen eines ständig wachsenden Bereiches, welche die Speicherfragmentierung ja nur vertausendfachen... (bzw. die GC extrem oft dazu zwingen Speicher zu relokalisieren um die Fragmentierung aufzulösen...)

btw: Hi Oxmyx :hi: , schaue mal auf Sprache und Plattform. ;)

Oxmyx 25. Nov 2005 22:13

Re: dynamische Arrays?
 
Du kannst dir doch einfach einen Speicherbereich reservieren, und dann mit nem normalen typisierten Zeiger darin rummachen.

faux 25. Nov 2005 22:17

Re: dynamische Arrays?
 
Zitat:

Zitat von Elvis
Zitat:

Zitat von malo
Geht sowas nicht?
Code:
int[] a = new int[];

Nope geht nicht.
.Net kennt keine dyn. Arrays. Jede Instanz eines Array ist per Definition fixed size.

Also hat mein Erinnerungsvermögen nicht versagt... :D
(Würde ja auch gegen das Prinzip von .NET verstoßen, wenn es dyn. Arrays gäbe).

Zitat:

Zitat von Elvis
Zitat:

Zitat von faux
Wie löst man sonst das Problem, dass man in einer Schleife jedes mal einen Wert hinzufügt?

Garantiert nicht mit einem Array. :mrgreen:

Schaue dir mal S.C.G.List<> oder S.C.G.LinkedList<> an.

OK, Danke. Das hab ich gesucht. :D
(Hab immer in System.Windows.Forms gesucht. => BLACKOUT. :mrgreen:)

Grüße
Faux

NACHTRAG:
Zitat:

Zitat von Oxmyx
Du kannst dir doch einfach einen Speicherbereich reservieren, und dann mit nem normalen typisierten Zeiger darin rummachen.

:shock:

Oxmyx 25. Nov 2005 22:22

Re: dynamische Arrays?
 
Naja, du könntest theoretisch ja realloc verwenden. So wie du das vorhast, ist aber eine Liste die wahrlich bessere Lösung. ;)

malo 25. Nov 2005 22:24

Re: dynamische Arrays?
 
Zitat:

Zitat von faux
Würde ja auch gegen das Prinzip von .NET verstoßen, wenn es dyn. Arrays gäbe.

Und wieso akzeptiert Delphi.NET dann dynamische Arrays? Trickst das da noch irgendwie? :gruebel:
Btw, wie ist die .NET-SetLength-Funktion für D.NET? :mrgreen:

faux 25. Nov 2005 22:25

Re: dynamische Arrays?
 
System.Collections.ArrayList:
Implements the IList interface using an array whose size is dynamically increased as required.

Zitat:

Zitat von Oxmyx
Naja, du könntest theoretisch ja realloc verwenden. So wie du das vorhast, ist aber eine Liste die wahrlich bessere Lösung. ;)

Es geht um ein .NET Thema. ;)

Oxmyx 25. Nov 2005 22:27

Re: dynamische Arrays?
 
Zitat:

Zitat von faux
Es geht um ein .NET Thema. ;)

Ups. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:38 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz