Oprettet fre. d. 12. marts 2010 kl. 21:32:16

swamboo
swamboo (12.059 point. Point ude: 480)

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)

Skrevet fre. d. 12. marts 2010 kl. 23:19:17| #1

arne_v
arne_v (1.005.658 point)
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.

Skrevet fre. d. 12. marts 2010 kl. 23:33:59| #2

swamboo
swamboo (12.059 point)
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??

Skrevet lør. d. 13. marts 2010 kl. 00:20:50| #3

arne_v
arne_v (1.005.658 point)
Jo - list kan alt som array.

Skrevet lør. d. 13. marts 2010 kl. 00:21:54| #4

arne_v
arne_v (1.005.658 point)
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.

Skrevet lør. d. 13. marts 2010 kl. 15:44:02| #5

janus_007
janus_007 (30.005 point)
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!

Skrevet lør. d. 13. marts 2010 kl. 19:24:24| #6

swamboo
swamboo (12.059 point)
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!

Skrevet søn. d. 14. marts 2010 kl. 01:43:33| #7

arne_v
arne_v (1.005.658 point)
nemt betyder ikke nødvendigvis godt

Skrevet søn. d. 14. marts 2010 kl. 12:29:12| #8

janus_007
janus_007 (30.005 point)
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å :)

Skrevet søn. d. 14. marts 2010 kl. 22:14:20| #9

swamboo
swamboo (12.059 point)
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....

Skrevet man. d. 15. marts 2010 kl. 00:19:24| #10

arne_v
arne_v (1.005.658 point)
Jeg tror at du skal lave FakturaForslag om fra struct til class og så bruge List<FakturaForslag>.

Skrevet man. d. 15. marts 2010 kl. 13:13:34| #11

janus_007
janus_007 (30.005 point)
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/ (...)(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/ (...) er forholdsvis ny :)

Skrevet søn. d. 21. marts 2010 kl. 15:14:06| #12

swamboo
swamboo (12.059 point)
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!

Skrevet man. d. 26. april 2010 kl. 03:29:32| #13


Skrevet tir. d. 02. november 2010 kl. 23:38:06| #14

swamboo
swamboo (12.059 point)
For oprydningens skyld - send venligst svar inden for 14 dage, så vi kan lukke tråden. Takker for hjælpen!

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Input string was not in a correct format"

Oprettet den 12. februar 2012 kl. 03.26
sibga giver 60 point for svar | Giv et svar »

Koordinater for nyt vindue efter scroll, csharp.

Oprettet den 11. februar 2012 kl. 01.54
bjarnefilm giver 30 point for svar | Giv et svar »

Treeview hovedmenu á lá Dynamics C5

Oprettet den 10. februar 2012 kl. 08.12
olehaahr giver 30 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger