HomeSearch

C# Loop Over String Chars: Foreach, For

This C# program loops over the characters in a string. It uses a foreach and for-loop.

Loop over string chars.

A loop iterates over individual string characters. It allows processing for each char. The foreach-loop and the for-loop are available for this purpose. The string indexer returns a char value.Indexer

Example.

First, we look at 2 loops where we iterate over each char in a string. The string you loop over can be a string literal, a variable, or a constant. We use the foreach and for-loop.ForeachString For-Loop
C# program that uses foreach on string using System; class Program { static void Main() { const string s = "peace"; foreach (char c in s) { Console.WriteLine(c); } for (int i = 0; i < s.Length; i++) { Console.WriteLine(s[i]); } } } Output p e a c e p e a c e

For performance,

it is sometimes easier for the JIT compiler to optimize the loops if you do not hoist the Length check outside of the for-loop. It is not often helpful to store the length in a local variable.

StringBuilder.

For long inputs where we build up an output, a StringBuilder is important. It means we don't have to worry about hundreds or thousands of appends happening in edge cases.StringBuilderStringBuilder Performance

Regex.

Sometimes using a loop is far more efficient than a Regex. Another advantage of loops is the ability to test each character and alert the user to special characters. Loops are imperative and offer more control.

However: Regular expressions offer more power in fewer characters. They are sometimes a better option.

Regex vs. LoopRegex

Summary.

This simple method loops over each character in a string. The performance here is good because it only needs to make one pass over the string. Often, we use loops to test for special patterns.
Home
Dot Net Perls
© 2007-2019 Sam Allen. All rights reserved. Written by Sam Allen, info@dotnetperls.com.