Sagen wir, ich habe 12345.
Ich möchte für jede Nummer einen eigenen Artikel. Eine Zeichenkette oder sogar eine einzelne Nummer wäre gut.
Verfügt die Methode .Split über eine Überladung für diese Funktion?
Sagen wir, ich habe 12345.
Ich möchte für jede Nummer einen eigenen Artikel. Eine Zeichenkette oder sogar eine einzelne Nummer wäre gut.
Verfügt die Methode .Split über eine Überladung für diese Funktion?
Etwas wie dies wird funktionieren, mit Linq:
string result = "12345"
var intList = result.Select(digit => int.Parse(digit.ToString()));
Dadurch erhalten Sie eine IEnumerable-Liste von ints.
Wenn Sie eine IEnumerable von Zeichenfolgen möchten:
var intList = result.Select(digit => digit.ToString());
oder wenn Sie eine Liste von Zeichenfolgen wünschen:
var intList = result.ToList();
Nun, ein String ist ein IEnumerable und implementiert auch einen Indexer, so dass Sie durch ihn iterieren oder jedes Zeichen in der Zeichenfolge durch Index verweisen können.
Der schnellste Weg, das Gewünschte zu erhalten, ist wahrscheinlich die Methode ToCharArray() eines Strings:
var myString = "12345";
var charArray = myString.ToCharArray(); //{'1','2','3','4','5'}
Sie können dann jedes Char in eine Zeichenkette umwandeln oder sie in Bytes oder Integer parsen. Hier ist ein Linq-y Weg, das zu tun:
byte[] byteArray = myString.ToCharArray().Select(c=>byte.Parse(c.ToString())).ToArray();
Ein wenig leistungsfähiger, wenn Sie ASCII/Unicode-Strings verwenden:
byte[] byteArray = myString.ToCharArray().Select(c=>(byte)c - 30).ToArray();
Dieser Code funktioniert nur, wenn Sie SICHER sind, dass jedes Element eine Zahl ist; andernfalls wird beim Parsen eine Ausnahme ausgelöst. Eine einfache Regex, die dies verifiziert, ist "^ \d +$" (entspricht einer vollständigen Zeichenkette, die aus einem oder mehreren Ziffernzeichen besteht), verwendet in der statischen Methode Regex.IsMatch().
Das können Sie einfach tun:
"123456".Select(q => new string(q,1)).ToArray();
um eine Aufzählung von ganzen Zahlen zu haben, wie es in den Kommentaren gefordert wird, können Sie:
"123456".Select(q => int.Parse(new string(q,1))).ToArray();
Es ist ein wenig schwach, da es davon ausgeht, dass die Zeichenfolge tatsächlich Zahlen enthält.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.