[C#] arrays laten maken in programma zelf

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • arneschoonvliet
  • Registratie: Februari 2010
  • Laatst online: 15-07 10:10
Hallo,

Voor mijn toepassing zou ik een variabel aantal arrays moeten kunnen maken in mijn programma zelf. Hiermee wil ik zeggen dat het kan zijn dat ik de ééne keer maar 10 nodig heb maar de andere keer 14.

Is er een C# een mogelijkheid dat het programma zelf de arrays aan maakt zonder dat ik ze hoef te declareren? Ik heb al geprobeerd om een array aan te maken en door middel van een variabele een getal ervoor gezet zodat ik het aantal arrays kan maken die ik nodig heb door die variabele elke keer met 1 te vergroten. Ik zet mijn data er dan in en dan verhoog ik de variabele met 1 zodat daarna de volgende data in die nieuwe array kan. Maar dit werkte spijtig genoeg niet.

Kan iemand me anders al op weg helpen door te zeggen in welke richting ik moet zoeken? Alvast bedankt!!

mvg Arne

Acties:
  • 0 Henk 'm!

  • HMS
  • Registratie: Januari 2004
  • Laatst online: 07-07 21:06

HMS

Je bedoelt iets als een List (MSDN: List(T) Class (System.Collections.Generic)) ?

Acties:
  • 0 Henk 'm!

  • arneschoonvliet
  • Registratie: Februari 2010
  • Laatst online: 15-07 10:10
Niet echt wat ik zoek, als ik het goed begrijp is dit voor het opslaan van data waarvan je niet weet hoeveel het is want hij past zichzelf dynamisch aan de hoeveelheid data.

Ik ben opzoek naar iets dat ik mijn data kan opsplitsen over meerdere arrays. Maar ik weet niet op voorhand hoeveel van die arrays ik ga nodig hebben. De data die opgeslagen wordt in de arrays kan ik een waarde opplakken dus ook op de grootte van mijn array.
Begrijpt u wat ik bedoel?

mvg Arne

Acties:
  • 0 Henk 'm!

  • HMS
  • Registratie: Januari 2004
  • Laatst online: 07-07 21:06

HMS

Dus soms heb je 10 arrays van een vaste lengte nodig, en soms heb je 14 arrays van een vaste lengte nodig? Dus eigenlijk een 2 dimensionale array die je dynamisch kan laten groeien?

Dan zou je zoiets kunnen doen:
C#:
1
2
3
4
var listOfArrays = new List<object[]>();
for(int i = 0; i < 10; ++i) {
    listOfArrays.Add(new object[size]);
}


Waar 10 natuurlijk het aantal arrays is wat je nodig hebt, kan ook een variable zijn

[ Voor 11% gewijzigd door HMS op 16-04-2013 13:59 ]


Acties:
  • 0 Henk 'm!

Anoniem: 47102

Nee, ik snap niet wat je bedoelt. Een List kan prima gebruikt worden om een onbekend aantal elementen in op te slaan. Als je een element toevoegt zal daar at-run-time geheugen voor geallocaard worden door de run-time.

Oh, ik snap het. Je bedoelt dat je een List van arrays wilt hebben, kan prima. Geen probleem bij karwei.

[ Voor 19% gewijzigd door Anoniem: 47102 op 16-04-2013 14:00 ]


Acties:
  • 0 Henk 'm!

  • arneschoonvliet
  • Registratie: Februari 2010
  • Laatst online: 15-07 10:10
HMS schreef op dinsdag 16 april 2013 @ 13:58:
Dus soms heb je 10 arrays van een vaste lengte nodig, en soms heb je 14 arrays van een vaste lengte nodig? Dus eigenlijk een 2 dimensionale array die je dynamisch kan laten groeien?

Dan zou je zoiets kunnen doen:
C#:
1
2
3
4
var listOfArrays = new List<object[]>();
for(int i = 0; i < 10; ++i) {
    listOfArrays.Add(new object[size]);
}


Waar 10 natuurlijk het aantal arrays is wat je nodig hebt, kan ook een variable zijn
Dit lijkt me wel iets wat ik kan gebruiken, bedankt voor de snelle reactie. Hiermee kan ik net zoveel arrays maken dat ik nodig heb voordat ik de arrays moet declareren.

mvg Arne

Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

In C# heb je prima support voor arrays (en/of arrays-van-arrays).
Je declareert immers een:
C#:
1
2
3
4
5
object[] een_array; //heeft nog geen grootte, is null

int elementen = 12; //aantal elementen dat je nodig hebt, normaal bereken je dit

een_array = new object[elementen]; //aantal elementen = 12


Alleen voor het geval dat je het aantal elementen niet weet voordat je de array nodig hebt, pak je een List<T> oid. Mocht je toch erg gehecht zijn aan arrays, kan je altijd nog een list.ToArray() doen als je klaar bent met vullen van data (.NET 3.5 en nieuwer)

-niks-


Acties:
  • 0 Henk 'm!

  • arneschoonvliet
  • Registratie: Februari 2010
  • Laatst online: 15-07 10:10
MLM schreef op dinsdag 16 april 2013 @ 19:51:
In C# heb je prima support voor arrays (en/of arrays-van-arrays).
Je declareert immers een:
C#:
1
2
3
4
5
object[] een_array; //heeft nog geen grootte, is null

int elementen = 12; //aantal elementen dat je nodig hebt, normaal bereken je dit

een_array = new object[elementen]; //aantal elementen = 12


Alleen voor het geval dat je het aantal elementen niet weet voordat je de array nodig hebt, pak je een List<T> oid. Mocht je toch erg gehecht zijn aan arrays, kan je altijd nog een list.ToArray() doen als je klaar bent met vullen van data (.NET 3.5 en nieuwer)
Ik heb na wat verder lezen over een List dit ook uiteindelijk gebruikt. Dit was wat ik nodig had, ik kan een onbepaald aantal array opslaan in een list en deze arrays met hun data in uiteindelijk ook terug oproepen. De perfecte oplossing, iedereen bedankt voor de goede hulp!

mvg Arne
Pagina: 1