Avatar billede nae Nybegynder
19. juli 2006 - 11:07 Der er 7 kommentarer og
1 løsning

Konvertering af Array til string[]

Hej,
Dette er nok et begynderspørgsmål, men er det muligt at converte fra typen Array til string[], jeg har prøvet at typecase men får følgende fejl:
Cannot implicitly convert type 'System.Array' to 'string[]'. An explicit conversion exists (are you missing a cast?)   
Jeg håber der er nogle af jer eksperter der kan hjælpe.
Avatar billede dj_uncas Nybegynder
19. juli 2006 - 11:20 #1
hvad med:

Array arr = new Array();
string[] strArr = (string[])arr;
Avatar billede dr_chaos Nybegynder
19. juli 2006 - 11:46 #2
du kan gøre noget i denne stil:
object[] objArray = { "1","2","3","4" };
    string[] strArray = new string[ objArray.Length ];
             
    Array.Copy( objArray, 0, strArray, 0, objArray.Length );
Avatar billede nae Nybegynder
19. juli 2006 - 12:06 #3
Tak, det virkede har dog nu fået et nyt problem. Når jeg nu kører det får jeg fejlen:
System.NullReferenceException was unhandled
Message="Object reference not set to an instance of an object.

Jeg kan ikke forstår hvorfor jeg skal lave en ny instans da jeg kun har 3 arrays jeg roder med?

    public Array routername(Array code, Array name)
    {
        string[] yourname = null;

        string[] str_code = (string[])code;
        string[] str_name = (string[])name;

        if (code.Length != name.Length)
        {
            MessageBox.Show("ERROR: The two Coloums is not of the same length!");
        }

        for (int i = 0; i < code.Length-1; i++)
        {
            yourname[i] = str_code[i] + "-" + str_name[i]; **Her kommer fejlen
            MessageBox.Show(yourname[i]);
        }
Avatar billede dj_uncas Nybegynder
19. juli 2006 - 13:04 #4
det er da fordi du sætter string[] yourname = null - og aldrig instantierer den.
Avatar billede nae Nybegynder
19. juli 2006 - 13:31 #5
Undskyld men forstår ikke helt hvad du mener, når jeg tænkter på at instantiere den ville det være ala.
yourname new_yourname = new yourname(); men det er kun ved funktioner, hvad mener du?
Avatar billede dj_uncas Nybegynder
19. juli 2006 - 14:00 #6
I og med du sætter eksplicit sætter "yourname" til "null" vil den være det (og altså ikke en instans) indtil du eksplicit instantierer den. Det kan du f.eks. gøre således:

string[] yourname = null;
yourname = new string[code.Length-1];

eller bare:
string[] yourname = new string[code.Length-1];

Sådan er syntaksen for at instantiere type arrays.
Avatar billede nae Nybegynder
19. juli 2006 - 14:11 #7
Tusind tak for du kunne hjælpe mig med mine begynder spørgsmål. Det virkede, hvis du lægger et svar får du dine point :)
Avatar billede dj_uncas Nybegynder
19. juli 2006 - 14:29 #8
Så gør jeg det ;-)
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