C#String Effiziente Blockverarbeitung
Bei der Programmierung sind Stringoperationen sehr häufig. Dieser Artikel enthält eine umfassende Lösung.
Angenommen, wir haben die folgende Zeichenfolge:
Unser Ziel ist es, es in einen Block von 4 zu unterteilen, um das folgende Sub -String zu erhalten:
<code>string str = "1111222233334444";</code>
<code>"1111" "2222" "3333" "4444"</code>
c#bietet eine leistungsstarke String -Betriebsmethode. Methode kann eine Ganzzahlsequenz innerhalb des angegebenen Bereichs erzeugen. In Kombination mit können wir eine elegante Lösung erstellen:
Enumerable.Range
Code detaillierte Erläuterung Enumerable.Select
<code class="language-csharp">static IEnumerable<string> Split(string str, int chunkSize) { return Enumerable.Range(0, str.Length / chunkSize) .Select(i => str.Substring(i * chunkSize, chunkSize)); }</code>
generieren Sie eine Ganzzahlsequenz von 0 bis . Jede Ganzzahl stellt einen Startindex eines Blocks dar.
Wenden Sie einen Lambda -Ausdruck auf jedes Element in der Sequenz an. Hier beginnt der Lambda -ExpressionEnumerable.Range(0, str.Length / chunkSize)
. str.Length / chunkSize - 1
Select
i => str.Substring(i * chunkSize, chunkSize)
i * chunkSize
abnormale Behandlung chunkSize
IEnumerable<string>
0
Strough Länge kann nichtdividieren
seinchunkSize
chunkSize
Das obige ist der detaillierte Inhalt vonWie kann ich einen String in C# effizient in Blöcke einer bestimmten Größe aufteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!