Avatar billede swamboo Seniormester
12. marts 2010 - 21:32 Der er 14 kommentarer

Jeg er gået helt kold...

Jeg havde lavet følgende som ikke virkede:
        public struct FakturaForslag
        {
            public int KundeId;
            public String Navn;
            public String Adresse;
            public String Post_by;
            public String Telefon;
            public int maaned;
            public int start;
            public int TextId;
            public int Pris;
            public int Pudsefri;
            public int Fysisk;
            public int Tillaeg;

        }
        FakturaForslag[] forslag = new FakturaForslag(100);

Så blev jeg opfordret til at bruge list i stedet for, det skulle være mere moderne. Men bruger man også list hvis man skal bruge det som arrary?
Forslaget i test ser således ud:
        List<string> dinosaurs = new List<string>();

        dinosaurs.Add("Tyrannosaurus");
        dinosaurs.Add("Amargasaurus");
        dinosaurs.Add("Mamenchisaurus");
        dinosaurs.Add("Deinonychus");
        dinosaurs.Add("Compsognathus");
Men hvordan laver man det til arrary - eller er det 2 helt forskellige ting som bruges hver for sig? Eller bygger man flere list sammen som en struct?
Savner en funktion hvor man kan sætte data ind, og hente dem ud enkeltvis, f.eks. henvise til Data(x,y)
Er jeg total på vildspor, eller er jeg bare forvirret??
Håber en eller anden hjælpsom person kan guide mig videre - jeg skal nok være flink :o)
Avatar billede arne_v Ekspert
12. marts 2010 - 23:19 #1
Du kan godt konvertere en list til et array, men hvorfor ?

Du kan referere til et element i en liste med samme syntax som et array.

Jeg vil sige at array kan alt som et array kan og du slipper for at bekymre dig om stoerrelsen.
Avatar billede swamboo Seniormester
12. marts 2010 - 23:33 #2
Du mener vel at LIST kan alt som et array kan og du slipper for at bekymre dig om stoerrelsen.

Jeg tænker sikkert gammeldags, men hvis du skal kæde en del elementer sammen Data(0,0) data(0,1).... data(1,0) data(1,1).... osv, har du så ikke brug for et array??
Avatar billede arne_v Ekspert
13. marts 2010 - 00:20 #3
Jo - list kan alt som array.
Avatar billede arne_v Ekspert
13. marts 2010 - 00:21 #4
Et to dimensionelt array af int kan laves med List<List<int>> men laves nok bedre som List<X> hvor X er en klasse med et antal int properties.
Avatar billede janus_007 Nybegynder
13. marts 2010 - 15:44 #5
swamboo -> En List kæder jo allerede objekterne sammen, hvorfor vil du dem kæde sammen som i et array?

"Savner en funktion hvor man kan sætte data ind, og hente dem ud enkeltvis" , jamen det kan du jo netop gøre med en List!
Avatar billede swamboo Seniormester
13. marts 2010 - 19:24 #6
Yeps - men jeg har brug for et 2 dementionelt array, som virker. Om det hedder det ene eller det andet er lige meget - bare det er let at arbejde med - altså hente data ud af :o)

Skal lige se om jeg kan finde ud af det List<List<int>> Det virker som om man bygger en list ind i en list - og hvis det er løsningen så er det jo en god mulighed!!

Er bare i tvivl om komandoerne - men jeg kikker list på det i aften!
Avatar billede arne_v Ekspert
14. marts 2010 - 01:43 #7
nemt betyder ikke nødvendigvis godt
Avatar billede janus_007 Nybegynder
14. marts 2010 - 12:29 #8
swamboo-> Jeg tror det vil være nemmere for os at give dig et råd, hvis du forklarer lidt mere om hvad du gerne vil opnå :)
Avatar billede swamboo Seniormester
14. marts 2010 - 22:14 #9
ok - jeg prøver.
Jeg er en gammel nørd fra dengang der var noget der hed put-basic, på en newbrain (ikke grine!!)
Dengang kunne man oprette en dobbelt variabel (vi kalder den TEST) og bare hælde data i ved f.eks. at skrive
TEST(1,1) = "Hund"
TEST(4,7) = "Gris" osv, osv....

Nu har jeg så lært - jeg er stadig ret ny i C# - at man, for at få samme funktion, opretter en struct, som så kan næsten det samme og på næsten den samme måde. I en struct som i den der er vist øverst i denne tråd kan man så samtidig definere om det skal være int eller string eller noget andet.

Her var det så en flink fyr skrev at det var oldnordisk, og jeg i stedet skal bruge den famøse <List>.
Det den skal afløse er faktisk den øverste tråd. Jeg troede i farten at det kunne afløse struct'en, men jeg er ved at finde ud af, at det nok nærnere er EN DEL af struct'en.

Så det jeg søger er bare:
Hvordan laver man en "moderne" struct (eller hvad den hedder nu) som den oven for?
Kan den ovenstående kode afløses af en smartere måde ved at bruge funktionen <list>?
Og hvis den kan - hvor lærer jeg så grund-begreberne i hvordan man arbejder med det?
Og hvorfor er den <list> meget bedre - er det søgefunktionerne der er bedre, eller....
Avatar billede arne_v Ekspert
15. marts 2010 - 00:19 #10
Jeg tror at du skal lave FakturaForslag om fra struct til class og så bruge List<FakturaForslag>.
Avatar billede janus_007 Nybegynder
15. marts 2010 - 13:13 #11
hej swamboo, jep det var mig der kaldte det "gammeldags" *G*

Og jep jeg vil stadig gøre som jeg anbefalede tidligere og som Arne også skriver, nemlig List<FakturaForslag>

En List er typestærk, det er et multidimensionelt array som du henviser til ikke (http://msdn.microsoft.com/en-us/library/2yd9wwz4(VS.71).aspx)

Ved at bruge List vil du også langt nemmere kunne søge, sortere mv.

Lad os tage TEST(1,1) = "Hund" mv...

Så ville man lave en List af strings:
List<string> myAnimals = new List<string>();
myAnimals.Add("Hund")
myAnimals.Add("Kat")
myAnimals.Add("Fugl")

Eller som blev muligt i 3.0
var myAnimals = new List<string>{"Hund", "Kat", "Fugl");

For begge gælder det så... som eksempel :) (der findes meget mere)

Men sortering:
myAnimals.OrderBy(x => x);

Eller hvis du vil finde alle dyr startende med "H":
myAnimals.Where(x => x.StartsWith("H"));

Der findes mange gode bøger som beskriver Linq og objekter, evt. denne :http://books.google.dk/books?id=PoYFLgfkELsC&dq=essential+linq&source=gbs_navlinks_s er forholdsvis ny :)
Avatar billede swamboo Seniormester
21. marts 2010 - 15:14 #12
Janus_007 - du har i denne henseende været meget informativ med mange fine og gode eksempler, så skriv et svar for dit store arbejde.

Takker for inspirationen - jeg vil rode videre med det, så du hører nok mere til mig fremover :o)

Også tak til arne_v!
Avatar billede arne_v Ekspert
26. april 2010 - 03:29 #13
Janus?
Avatar billede swamboo Seniormester
02. november 2010 - 23:38 #14
For oprydningens skyld - send venligst svar inden for 14 dage, så vi kan lukke tråden. Takker for hjælpen!
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