Avatar billede musicchart.dk Nybegynder
11. september 2005 - 15:17 Der er 22 kommentarer og
1 løsning

ArrayList med flere dimensioner?

Kan et ArrayList udvides med flere dimensioner?

Ja, et simpelt ja eller nej spørgsmål - dog, er svaret ja, ville det være rart med et eksempel.

Hilsen,
Bjarke
Avatar billede arne_v Ekspert
11. september 2005 - 15:20 #1
nej

men du kan lave en ArrayList som indeholder ArrayList's

hvilket næsten giver samme effekt
Avatar billede musicchart.dk Nybegynder
11. september 2005 - 15:21 #2
Hej Arne,

Har du et eksempel? evt. også hvordan jeg får det tilføjet/hentet fra en session?

Jeg refererer til mit tidligere spørgsmål:
http://www.eksperten.dk/spm/644311
Avatar billede arne_v Ekspert
11. september 2005 - 15:21 #3
(i .NET 2.0 med en generic List må synatxen endda være den samme)
Avatar billede arne_v Ekspert
11. september 2005 - 15:23 #4
ArrayList a1 = new ArrayList();
a1.Add("abc");
a1.Add("xyz");
ArrayList a2 = new ArrayList();
a2.Add("æøå");
ArrayList a = new ArrayList();
a.Add(a1);
a.Add(a2);
Avatar billede arne_v Ekspert
11. september 2005 - 15:27 #5
Session["a"] = a;

men jeg er lidt skeptisk overfor konceptet
Avatar billede arne_v Ekspert
11. september 2005 - 15:27 #6
ud igen

((ArrayList)a[0])[1]

men det kan som sagt laves pænere i .NET 2.0
Avatar billede musicchart.dk Nybegynder
11. september 2005 - 15:28 #7
Hvis jeg nu får tilføjet varens oplysninger i et ArrayList således:

ArrayList a1 = new ArrayList();
a1.Add("abc");
a1.Add("xyz");

Så skal jeg kunne hente (fra dit eksempel) ArrayList a ud fra en session, hvorefter a1 bliver tilføjet a, og a tilføjet session'en. Hvordan bærer jeg dette ad?
Avatar billede arne_v Ekspert
11. september 2005 - 15:32 #8
((ArrayList)Session["a"]).Add(a1);
Avatar billede musicchart.dk Nybegynder
11. september 2005 - 15:35 #9
Jeg spørger meget, men hvordan gennemløber jeg så alle arraylisterne i sessionen?
Avatar billede arne_v Ekspert
11. september 2005 - 15:55 #10
er det:

ArrayList a = Session["a"];
for(int i = 0; i < a.Count; i++)
{
    ArrayList ax = (ArrayList)a[i];
    ...
}

du leder efter ?
Avatar billede musicchart.dk Nybegynder
11. september 2005 - 16:00 #11
ahh... og så kan jeg gennemløbe indholdet i ax?

ArrayList a = Session["a"];
for(int i = 0; i < a.Count; i++)
{
    ArrayList ax = (ArrayList)a[i];
    for(int u = 0; u < ax.Count; u++)
    {
      ...
    }
}

og på denne måde, gennemløbe alle arraylisterne i sessionen, og indholdet i hver arraylist?
Avatar billede arne_v Ekspert
11. september 2005 - 16:02 #12
jep
Avatar billede musicchart.dk Nybegynder
11. september 2005 - 16:20 #13
lækkert... vil du have point?

Arne, holder du ikke foredrag eller kurser?
Avatar billede arne_v Ekspert
11. september 2005 - 16:23 #14
svar
Avatar billede arne_v Ekspert
11. september 2005 - 16:23 #15
næh
Avatar billede musicchart.dk Nybegynder
11. september 2005 - 18:18 #16
Er det ikke noget du kunne tænke dig, du ville sikkert kunne skrabe en del kursister sammen.
Avatar billede musicchart.dk Nybegynder
11. september 2005 - 19:09 #17
Gør jeg noget forkert her?

1. Del
Her tilføjer jeg til Session["entries"] :

ArrayList a1 = new ArrayList();
a1.Add("hej");
a1.Add("aaa");

if(Session["entries"] == null)
{
    Session["entries"] = a1;
}
    else

    ((ArrayList)Session["entries"]).Add(a1);
}



2. Del
Her henter jeg fra Session["entries"] :

if(Session["entries"] != null){
    Label8.Text = "";
    ArrayList a = (ArrayList)Session["entries"];
    for(int i = 0; i < a.Count; i++)
    {
        Label8.Text += "<br><br>";
        ArrayList ax = (ArrayList)a[i];
        for(int u = 0; u < ax.Count; u++)
        {
            Label8.Text += ax[u] + "<br>";
        }
    }
}



Jeg får fejlen:
Detaljer om undtagelse: System.InvalidCastException: Den angivne ændring er ugyldig.
... i linien:
ArrayList ax = (ArrayList)a[i];
Avatar billede musicchart.dk Nybegynder
11. september 2005 - 19:15 #18
Ahh... det er fordi at når jeg tilføjer det første i min session:
Session["entries"] = a1;

... så er det jo ikke som et ArrayList.
Men bruger jeg:
((ArrayList)Session["entries"]).Add(a1);
... istedet for, vil det jo heller ikke gå - da min session jo er tom. Hvordan får jeg så defineret at når den første post jeg tilføjer min session, skal være som en ArrayList?
Avatar billede arne_v Ekspert
11. september 2005 - 21:01 #19
if(Session["entries"] == null)
{
    Session["entries"] = a1;
}
    else
{
    ((ArrayList)Session["entries"]).Add(a1);
}

skal vel være


if(Session["entries"] == null)
{
    Session["entries"] = new ArrayList();
}
((ArrayList)Session["entries"]).Add(a1);
Avatar billede arne_v Ekspert
11. september 2005 - 21:02 #20
du er ikke på .NET 2.0 ? der er det lidt nemmere !
Avatar billede musicchart.dk Nybegynder
11. september 2005 - 23:18 #21
Yes, så er den der! tak for hjælpen.

Jeg kører pt. på wannafind som webserver, og ved ikke om de er på .NET 2.0 - men ellers så nej, på den lokale bruger jeg .NET 1.1
Avatar billede arne_v Ekspert
11. september 2005 - 23:22 #22
de kører næppe en beta version

men glæd dig til 2.0 og generics

de vil kunne spare dig for lidt cast'eri
Avatar billede musicchart.dk Nybegynder
11. september 2005 - 23:39 #23
Ja, jeg har skimtet lidt på Generics og 2.0 i den bog jeg pt. sidder med (The C# Programming Language af Anders Hejlsberg, Scott Wiltamuth og Peter Golde) - men jeg prøver først at skabe mig et solidt grundlag, før jeg begynder med det mere dybdegående og krævende. Nu har jeg også tilmeldt mig et .NET/C# kursus der forløber over de kommende 15 uger - så må jeg se hvilket niveau jeg befinder mig på til den tid.
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