using System.Collections.Generic;
public static class StringExtensions
public static string GetInitials(this string value)
.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
.Where(x => x.Length >= 1 && char.IsLetter(x[0]))
.Select(x => char.ToUpper(x[0])));
public static void Main()
var list = new List<string>(){"James blerg Smith", "Michael Smith", "Robert Smith 3rd", "Maria splutnic Garcia", "David Smith", "Maria Rodriguez", "Mary Smith", "Maria Hernandez"};
foreach(var name in list)
Console.WriteLine(name.GetInitials());