Avatar billede fynbo Nybegynder
26. oktober 2004 - 12:16 Der er 19 kommentarer og
1 løsning

Opbevare data i string

Hej,

Jeg har et tal, og så fire ord som knytter sig til dette tal

Fx:

23 Christian Fodbold Badminton

Hvordan får jeg gemt dette i en array, så at jeg ved at angive tal, kan hive enten Christian, Fodbold eller Badminton.

Lidt ligesom en hash table, bortset fra at der kan man kun gemme to værdier.
Avatar billede arne_v Ekspert
26. oktober 2004 - 12:21 #1
Prøv:

string() parts = s.Split(" ".ToCharArray());
Avatar billede arne_v Ekspert
26. oktober 2004 - 12:22 #2
string[] parts = s.Split(" ".ToCharArray());
Avatar billede arne_v Ekspert
26. oktober 2004 - 12:22 #3
parts[0] vil indeholde "23"
parts[1] vil indeholde "Christian"
parts[2] vil indeholde "Fodbold"
parts[3] vil indeholde "Badminton"
Avatar billede fynbo Nybegynder
26. oktober 2004 - 12:34 #4
jeg har brugt en split, som splitter ved en tab.

mit problem er at jeg har

23 Christian Fodbold Badminton
24 Thomas Håndbold Badminton
25 Arne Svømning Fodbold

og 8000 mere, og det er ikke til at holde styr på, med din løsning.

Derfor jeg nævnte hash tables.

Håber du forstår hvad jeg mener
Avatar billede arne_v Ekspert
26. oktober 2004 - 12:39 #5
Er det noget a la dette du leder efter:

Hashtable personer = new Hashtable();
string[] lines = s.Split("\n".ToCharArray());
for(int i = 0; i < lines.Length; i++)
{
    string[] parts = lines[i].Split(" ".ToCharArray());
    personer.Add(int.Parse(parts[0]), new Person(parts[1], parts[2], parts[3]));
}
Avatar billede dna Nybegynder
26. oktober 2004 - 12:40 #6
Du kunne også lave en lille samleklasse, hvor du oprettede et objekt pr. linie/person. Så kunne du hurtigt lave en lille metode, som kunne give dig den person med et givent nummer.

dna
Avatar billede fynbo Nybegynder
26. oktober 2004 - 12:41 #7
arne_v> perfekt!

hvis jeg så vil hive fx fodbold ud af nr 23, hvad skriver jeg så?
Avatar billede arne_v Ekspert
26. oktober 2004 - 12:45 #8
(Person)personer[23].FirstSport

eller noget lignende - afhængig af hvordan dit Person objekt ser ud
Avatar billede fynbo Nybegynder
26. oktober 2004 - 12:47 #9
tak! smid lige et svar..
Avatar billede arne_v Ekspert
26. oktober 2004 - 12:51 #10
kommer her
Avatar billede fynbo Nybegynder
26. oktober 2004 - 12:58 #11
lige en enkelt ting til

class Person{
public string strFirstSport;
public string strSecondSport;
public string strName;
}

opretter jo en klasse. men når jeg bruger dit kode-eksempel, siger den at klassen ikke kan tage tre argumenter, og det kan jeg sagtens se selv, spørgsmålet er så, hvad skal jeg ændre, så klassen kan tage de tre argumenter.
Avatar billede sw_red_6 Nybegynder
26. oktober 2004 - 13:04 #12
Er det ikke fordi du skal have en constructor som kan modtage 3 argumenter?
noget i retning af:

class Person{
public string strFirstSport;
public string strSecondSport;
public string strName;

public Person(string str1, string str2, string str3)
{
  strFirstSport = str1;
  strSecondSport = str2;
  strName = str3;
}
Avatar billede sw_red_6 Nybegynder
26. oktober 2004 - 13:04 #13
hov der mangler en } til constructoren
Avatar billede arne_v Ekspert
26. oktober 2004 - 13:08 #14
Mit eksempel forudsætter:

* en constructor med 3 argumenter

* properties for de private fields
Avatar billede fynbo Nybegynder
26. oktober 2004 - 13:17 #15
jo, selvfølgelig.

hvor skal class Person og public Person placeres i koden, i forhold til class main()og public main()
Avatar billede fynbo Nybegynder
26. oktober 2004 - 13:18 #16
hov, kun public Person(), class Person ved jeg godt hvor skal sættes.
Avatar billede arne_v Ekspert
26. oktober 2004 - 13:19 #17
namespace xxxx
{
    public class Person
    {
        ...
    }
    public class MainClass
    {
        ...
    }
}
Avatar billede fynbo Nybegynder
26. oktober 2004 - 13:20 #18
tak!
Avatar billede sw_red_6 Nybegynder
26. oktober 2004 - 13:20 #19
public Person er constructoren og den skal placeres inde i klassen Person
Avatar billede arne_v Ekspert
26. oktober 2004 - 13:20 #20
public class Person
{
    private string name;
    ...
    public Person(string name, ...)
    {
        this.name = name;
    }
    public string Name
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
        }
    }
    ...
}
}
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