Gå til innhold

C#: Konvertering av arrayverdier til strings


Anbefalte innlegg

Skrevet

Under compact framework har jeg denne c#-kode:

 

               char[] sep = { '|' };
               Array a = this.datainn.Split(sep);
               string c0 = a.GetValue(0);
               string c1 = a.GetValue(1);
               string c2 = a.GetValue(2);

 

På : string c0 = a.GetValue(0); får jeg feilmeldinga: "Error 1 Cannot implicitly convert type 'object' to 'string'. An explicit conversion exists (are you missing a cast?)". Hvordan får jeg verdien i a(0) over i c0 og tilsvarende for a(1) og a(2)?

Videoannonse
Annonse
Skrevet

GetValue() returnerer Object. Derfor må du enten cast'e til string eller bruke ToString()

char[] sep = { '|' };
Array a = this.datainn.Split(sep);
string c0 = a.GetValue(0).ToString();
string c1 = a.GetValue(1).ToString();
string c2 = a.GetValue(2).ToString();

Skrevet

Det er vel strengt tatt tre måter man kan gjøre det på

string c0 = Convert.ToString(a.GetValue(0));
string c1 = a.GetValue(0).ToString();
string c2 = (String)a.GetValue(0);

Skrevet
Det er vel strengt tatt tre måter man kan gjøre det på

string c0 = Convert.ToString(a.GetValue(0));
string c1 = a.GetValue(0).ToString();
string c2 = (String)a.GetValue(0);

9279756[/snapback]

 

Jeg tok den første, og den funka perfekt. Så tusen takk Manfred for din raske og gode hjelp!

  • 3 uker senere...
Skrevet (endret)

Dere bare rører alle sammen

 

string[] arr = "Hei|På|Deg".Split(new char[] {'|'})
string c0 = arr[0];
string c1 = arr[1];
string c2 = arr[2];

 

Dessuten må du caste hvis du skal convertere fra object til string hvis du bruker Array istedet:

 

string s = a.GetValue(0) as string

Det skal fungerer glimrende, hvis ikke kan du også bruke

string s = a.GetValue(0).ToString()

Endret av GeirGrusom
Skrevet
Sånn dersom du ville ha flere forskjellige måter å caste på :D

9463448[/snapback]

 

10 poeng hvis du beskriver hvilke forskjeller de vil ha i praksis også :-P

Skrevet (endret)
Dersom a.GetValue() er av en annen type en string, og har overridet operator string, ville det gitt et annet resultat :) får jeg noen penger, eller er poeng verdiløst? :D

9463572[/snapback]

 

3.33333333333333333333333333333333333333333 poeng siden du kun svarte på 1 av dem...

 

Edit: Var litt mangelfult svar, så du får kun 2 poeng. Hva skjer om a == null || a ikke har overridet .ToString()? :)

Endret av jorn79
Skrevet

Hihi

1) ObjectNullException 2) TypeCastException

 

3) Dersom man bruker "as string" istedet for "(string)"

hvis a ikke er av typen string, vil "as" returnere null, og du vil få følgefeilen ObjectNullException.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...