Here is a really simple string extension to help you get initials from a string in C#
public static string ToInitials(this string str)
{
return Regex.Replace(str, @"^(?'b'\w)\w*,\s*(?'a'\w)\w*$|^(?'a'\w)\w*\s*(?'b'\w)\w*$", "${a}${b}", RegexOptions.Singleline)
}
Here's a breakdown on what the expression is doing:
- ^ matches beginning of the string
- (?'b'\w) captures first character of a word and stores in in 'b'
- \w* matches the rest of the name
- , matches a comma
- \s* matches > 0 spaces
- (?'a'\w)\w* matches the second part of the name capturing the first letter into 'b'
- $ matches end of string
- | or the alternate pattern w ithout the ,
- Notice the 'a' and 'b' are swapped
There are more handy string extensions on 'String Extension Collection for C#'