Que tal compañeros, vengo a ustedes solicitando su apreciable ayuda, verán, relleno una lista genérica (list<tipo>) con un string:
    
Código C#:
Ver originalList<string> colores = new List<string>("rojo","azul","amarillo","rojo","morado","rojo");
  
Como verán, el color rojo se repite 3 veces, lo que busco es saber cuantas veces se repite cada color: 
rojo: 3
amarillo: 1
azul: 1
morado: 1 
Pero no logro hacerlo, eh estado viendo como hacerlo con linq, pero no le entiendo, con SQL es muy fácil...    
Código SQL:
Ver originalSELECT color, COUNT(*) AS total FROM colores GROUP BY color
  
Pero no me es posible pasarlo a linq... 
Agradezco toda ayuda o comentario que me dejen...