string[] colores = { "azul", "naranja", "rojo", "amarillo", "verde", "rosa",
"lila", "morado", "gris", "negro", "blanco" };
var coloresOrdenados = from c in colores
group c by c.Substring(0, 1) into primerChar
orderby primerChar.Key ascending
select new {
Inicial=primerChar.Key,
colorporInicial=primerChar };
string[] coloresPorInicial;
string resultado="";
foreach (var ini in coloresOrdenados)
{
resultado = resultado+ "Colores que empiezan por '" +
ini.Inicial+"': ";
coloresPorInicial = ini.colorporInicial.ToArray();
resultado = resultado + String.Join(" ", coloresPorInicial) + "\r\n"; }
//Valor de resultado
Colores que empiezan por 'a': azul amarillo
Colores que empiezan por 'b': blanco
Colores que empiezan por 'g': gris
Colores que empiezan por 'l': lila
Colores que empiezan por 'm': morado
Colores que empiezan por 'n': naranja negro
Colores que empiezan por 'r': rojo rosa
Colores que empiezan por 'v': verde