AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

dynamische Arrays?

Ein Thema von faux · begonnen am 25. Nov 2005 · letzter Beitrag vom 26. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

dynamische Arrays?

  Alt 25. Nov 2005, 22:50
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
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#2

Re: dynamische Arrays?

  Alt 25. Nov 2005, 23:02
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?
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: dynamische Arrays?

  Alt 25. Nov 2005, 23:08
Kannst mir mal ein Beispiel geben, wie ich den Array anspreche?
Im Prinzip will ich sowas machen (nur halt in C# ):
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
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: dynamische Arrays?

  Alt 25. Nov 2005, 23:10
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 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.

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 , schaue mal auf Sprache und Plattform.
Robert Giesecke
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#5

Re: dynamische Arrays?

  Alt 25. Nov 2005, 23:13
Du kannst dir doch einfach einen Speicherbereich reservieren, und dann mit nem normalen typisierten Zeiger darin rummachen.
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: dynamische Arrays?

  Alt 25. Nov 2005, 23:17
Zitat von Elvis:
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...
(Würde ja auch gegen das Prinzip von .NET verstoßen, wenn es dyn. Arrays gäbe).

Zitat von Elvis:
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.

Schaue dir mal S.C.G.List<> oder S.C.G.LinkedList<> an.
OK, Danke. Das hab ich gesucht.
(Hab immer in System.Windows.Forms gesucht. => BLACKOUT. )

Grüße
Faux

NACHTRAG:
Zitat von Oxmyx:
Du kannst dir doch einfach einen Speicherbereich reservieren, und dann mit nem normalen typisierten Zeiger darin rummachen.
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#7

Re: dynamische Arrays?

  Alt 25. Nov 2005, 23:22
Naja, du könntest theoretisch ja realloc verwenden. So wie du das vorhast, ist aber eine Liste die wahrlich bessere Lösung.
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#8

Re: dynamische Arrays?

  Alt 25. Nov 2005, 23:24
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?
Btw, wie ist die .NET-SetLength-Funktion für D.NET?
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: dynamische Arrays?

  Alt 25. Nov 2005, 23:25
System.Collections.ArrayList:
Implements the IList interface using an array whose size is dynamically increased as required.

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.
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#10

Re: dynamische Arrays?

  Alt 25. Nov 2005, 23:27
Zitat von faux:
Es geht um ein .NET Thema.
Ups.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.
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