Avatar billede mcnovy Nybegynder
21. maj 2006 - 13:59 Der er 10 kommentarer og
1 løsning

kopiere ArrayList

hey

jeg bixer lidt med at kopire en ArrayList fren een klasse, til en anden.

et ex.

Public Class test1
{
Private ArrayList Array1;
  private void Kopi()
  {
      Array1 = new Arraylist();
      Array1.Add("test1");
      test2 tt = new test2();
      tt.Array2.Add(Array1);
  }
}
Public Class test2
{
  public ArrayList Array2;
  public test
  {
      Array2 = new ArrayList();
  }
}

den kopiere det fint over, men den kopiere det ovre så den ligger arraylisten IND i arraylisten,
så array2 indeholder;
[0]Array1
[1]

kan man ikke i en enkelt linje kopiring lægge arrayet rigtigt over i listen..?

jeg ved godt at man kan lave noget
foreach ()
blablabla

men jeg havde håbet på at jeg kunne nøjes med en enkelt linje
Avatar billede innercitydk Nybegynder
21. maj 2006 - 14:10 #1
Løb arrayet igennem med en foreach lykke og gem værdierne på den måde.

private void Kopi()
  {
      Array1 = new Arraylist();
      Array1.Add("test1");
      test2 tt = new test2();
      foreach(string t in Array1)
          tt.Array2.Add(t);
  }

Alternativt sætter du Array2=Array1:

private void Kopi()
  {
      Array1 = new Arraylist();
      Array1.Add("test1");
      test2 tt = new test2();
      tt.Array2=Array1
  }

Vh
Avatar billede innercitydk Nybegynder
21. maj 2006 - 14:11 #2
Glemte et ; i 2. løsning:

tt.Array2=Array1;
Avatar billede mcnovy Nybegynder
21. maj 2006 - 14:13 #3
innercitysk

nu er jeg jo ikke meget for at godkende dit svar..
for som jeg skrev til sidst i mit spørgsmål, så ved jeg godt at man kan bruge foreach,
men jeg håbede på en enkelt linje til det..
nogle andre bud.. eller er det umuligt..?
Avatar billede mcnovy Nybegynder
21. maj 2006 - 14:15 #4
hov.. havde ikke lige kigget det ordentligt igennem..

den er jo selvfølgelig god nok med array2 = array1 :)

men ville det være mere rigtigt at køre en foreach..?
Avatar billede innercitydk Nybegynder
21. maj 2006 - 14:15 #5
Læs da lige det hele :) Du kan bare sætte array2=array1

private void Kopi()
  {
      Array1 = new Arraylist();
      Array1.Add("test1");
      test2 tt = new test2();
      tt.Array2=Array1;
  }
Avatar billede innercitydk Nybegynder
21. maj 2006 - 14:16 #6
Nej det letteste er at lave løsning nummer2. Den vil også bruge meget mindre system resourcer ;)
Avatar billede innercitydk Nybegynder
21. maj 2006 - 14:18 #7
Tak for point ;)
Avatar billede mcnovy Nybegynder
21. maj 2006 - 14:20 #8
innercity.. det var netop det med resourcerne jeg var bekymret for hvis nu det array skulle gå hen og blive stort..! og derfor jeg stræber efter at bruge en enkelt linje og ikke en foreach

men jeg takker for svaret..!
og undskylder at jeg ikke læste ordentligt igennem først...! :|
Avatar billede innercitydk Nybegynder
21. maj 2006 - 14:24 #9
Hehe kender det.. Jeg havde heller ikke læst hvad du skrev omkring foreach.. pinligt :D
Avatar billede arne_v Ekspert
21. maj 2006 - 15:31 #10
jeg kan ikke rigtigt gennemskue hvad der ønskes

men her er lidt tilfældige kommentarer

ArrayList al1;
ArrayList al2;

al2 = al1; // sætter referencen al2 til at pege på samme ArrayList objekt som al1 peger på

al2 = (ArrayList)al2.Clone(); // sætter reference al2 til at pege på en kopi af det ArrayList objekt som al1 peger på

al2.AddRange(al1); // tilføjer alle elementer i al1 til al2 (er formentlugt bare en forklædt foreach løkke)
Avatar billede mcnovy Nybegynder
21. maj 2006 - 15:44 #11
arne v

det der ønskes er:

jeg opretter et array som samler nogle info i een klasse,
og den skal så sende dem videre til en anden klasse når det array er som det skal være..!

al2 = al1;
den gør som jeg gerne vil have den skal gøre.
hmm.. har lige debugget lidt.. og fandt så ud af at du har helt ret..!

det er jo addrange jeg skal bruge..!

arne_v du skal jo have nogle point for det her.
skal jeg oprette en point til arne_V
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester