c# group array based on first character

C#
Select().GroupBy(x => x.Name.Substring(0,1).ToUpper(), 
        (alphabet, subList) => new { 
          Alphabet = alphabet, 
          SubList = subList.OrderBy(x => x.Name).ToList() 
        }).OrderBy(x => x.Alphabet);
Source

Also in C#: