Count the spaces at start of a string
c#, count, string, whitespace
Solution
Use `Enumerable.TakeWhile`, `Char.IsWhiteSpace` and `Enumerable.Count`
int count = str.TakeWhile(Char.IsWhiteSpace).Count();
Note that not only `" "` is a white-space but:
White space characters are the following Unicode characters:
- Members of the SpaceSeparator category, which includes the characters SPACE (U+0020), OGHAM SPACE MARK (U+1680), MONGOLIAN VOWEL SEPARATOR (U+180E), EN QUAD (U+2000), EM QUAD (U+2001), EN SPACE (U+2002), EM SPACE (U+2003), THREE-PER-EM SPACE (U+2004), FOUR-PER-EM SPACE (U+2005), SIX-PER-EM SPACE (U+2006), FIGURE SPACE (U+2007), PUNCTUATION SPACE (U+2008), THIN SPACE (U+2009), HAIR SPACE (U+200A), NARROW NO-BREAK SPACE (U+202F), MEDIUM MATHEMATICAL SPACE (U+205F), and IDEOGRAPHIC SPACE (U+3000).
- Members of the LineSeparator category, which consists solely of the LINE SEPARATOR character (U+2028).
- Members of the ParagraphSeparator category, which consists solely of the PARAGRAPH SEPARATOR character (U+2029). The characters CHARACTER TABULATION (U+0009), LINE FEED (U+000A), LINE TABULATION (U+000B), FORM FEED (U+000C), CARRIAGE RETURN (U+000D), NEXT LINE (U+0085), and NO-BREAK SPACE (U+00A0).
.... so basically spaces, new-lines- and tabs
Problem
How would I count the amount of spaces at the start of a string in C#? example: ``` " this is a string" ``` and the result would be 4. Not sure how to do this correctly. Thanks.