Tengo una lista que contiene un grupo de cadenas que pueden aparecer más de una vez. Me gustaría tomar esta lista y crear un diccionario de los elementos de la lista como la clave y el recuento de sus ocurrencias como el valor.Creación de un diccionario de recuentos de elementos en una lista
Ejemplo:
List<string> stuff = new List<string>();
stuff.Add("Peanut Butter");
stuff.Add("Jam");
stuff.Add("Food");
stuff.Add("Snacks");
stuff.Add("Philosophy");
stuff.Add("Peanut Butter");
stuff.Add("Jam");
stuff.Add("Food");
y el resultado sería un diccionario que contiene:
"Peanut Butter", 2
"Jam", 2
"Food", 2
"Snacks", 1
"Philosophy", 1
tengo una manera de hacer esto, pero no parece como si estuviera utilizando la buena cosas en C# 3,0
public Dictionary<string, int> CountStuff(IList<string> stuffList)
{
Dictionary<string, int> stuffCount = new Dictionary<string, int>();
foreach (string stuff in stuffList) {
//initialize or increment the count for this item
if (stuffCount.ContainsKey(stuff)) {
stuffCount[stuff]++;
} else {
stuffCount.Add(stuff, 1);
}
}
return stuffCount;
}
¿Cómo se añade un OrdenarPor al primer ejemplo? – zadam
@zadam Siempre puede decir 'groups = groups.OrderBy (g => g.Stuff)'; – casperOne