Entwickler-Ecke

Basistechnologien - Array konvertierung, richtig so?


Marlon - Mo 11.02.08 17:18
Titel: Array konvertierung, richtig so?
Hallo,

ich wusste nicht, wie ich ein Array String in ein Array Int umwandeln kann.

Darum habe ich ein 2. Array angelegt und es so geregelt:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
note2[] = string
note[] = int 

for (int i = 0; i < 6; i++)
            {
             note[i] = Convert.ToDouble(note2[i]);
            }


Ist es so richtig, oder gibt es da einen bessern weg?

Danke!

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Mo 11.02.08 17:28

Ich würde mit Double.TryParse arbeiten, damit es nicht kracht wenn ein String mal nicht in eine Zahl umgewandelt werden kann. Ansonsten sieht das okay aus.

//Edit: Ach ja - :welcome:


Leuchtturm - Mo 11.02.08 17:31

eventuell könnte man in der for-Schleife statt i < 6 die Anzahl der Items in dem Array nehmen, außer es sollen immer nur die ersten 6 sein :wink:


JüTho - Mo 11.02.08 17:42

Christian hat schon bestätigt, dass es korrekt ist. Vom Grundsatz her geht es auch gar nicht anders: Jedes Array enthält eine eigene Liste vom eigenen Typ; jedes Element einer jeden Liste muss separat konvertiert werden.

Ich hab noch ein paar Anmerkungen:
* Die Deklaration und Implementation der Arrays ist (in Deinem Auszug) natürlich falsch. Schon wegen des Vorbilds für andere Leser sollte das immer richtig kopiert werden. (Oder ist das Chrome?)
* Du schreibst von int-Arrays. Dann kann eine double-Konvertierung natürlich nicht zum Ziel führen.
* Die Methoden der Convert-Klasse sind grundsätzlich nur die letzte Wahl. Besser sind (fast) immer TryParse und TryParseExact oder (soweit möglich) direkte Konvertierung.

Gruß Jürgen


Christian S. - Mo 11.02.08 17:45

user profile iconJüTho hat folgendes geschrieben:
Die Deklaration und Implementation der Arrays ist (in Deinem Auszug) natürlich falsch. Schon wegen des Vorbilds für andere Leser sollte das immer richtig kopiert werden. (Oder ist das Chrome?)
Ich hatte angenommen, dass das Pseudo-Code sein sollte :gruebel:

user profile iconJüTho hat folgendes geschrieben:
Du schreibst von int-Arrays. Dann kann eine double-Konvertierung natürlich nicht zum Ziel führen.
:oops: Das hatte ich überlesen


Marlon - Mo 11.02.08 18:31

Hallo und Danke für die schnellen Antworten...

Ich hatte eben die Frage neben dem arbeiten geschrieben und dabei ist mir ein Fehler unterlaufen.



*************Ich meinte Double und nicht Int*****************

Sorry ;-)


Kha - Di 12.02.08 11:42

Der Vollständigkeit halber: Array.ConvertAll (und im allgemeinen Fall Enumerable.Select) stünde auch noch zur Auswahl - könnte aber ohne Vorwissen über Generics und Delegates schwer bekömmlich sein :) .