Wenn Sie konvertieren jedes Zeichen zu einer Zeichenfolge zuerst, dann verwenden Sie int.Parse
(oder immer noch Convert.ToInt32
), die funktionieren.
Persönlich würde ich LINQ dafür, z.
int[] sequence = array.Select(x => int.Parse(x.ToString())).ToArray();
... oder ToList
verwenden, wenn Sie mit List<int>
genauso zufrieden sind.
Wenn Sie Char.GetNumericValue
verwenden möchten, wie in eine andere Antwort vorgeschlagen, können Sie auch, dass mit LINQ verwenden:
int[] sequence = array.Select(x => (int) char.GetNumericValue(x)).ToArray();
Beachten Sie, dass die Besetzung zu int
ist erforderlich, weil char.GetNumericValue
eine double
zurückgibt. (Es gibt Unicode-Zeichen für Werte wie „eine Hälfte“ zum Beispiel.)
Oder wenn Sie absolut sicher sind, sind Sie nur ASCII-Ziffern gehen zu müssen, können Sie die schnell und schmutzig verwenden:
int[] sequence = array.Select(x => x - '0').ToArray();
Versuchen Sie, die Zahlen in der Zeichenfolge von "1" auf "1" und so weiter zu ändern. Dies sollte es ändern, so dass sie zu ganzen Zahlen wechseln. – deathismyfriend
'Aber ich bekomme die ASCII-Codierung von 1,2,3,4 nicht die Zahlen selbst. Tatsächlich erhalten Sie die 32-Bit-Ganzzahl mit Vorzeichen des _Unicode_-Zeichens. – Harrison