Ho una lista contenente un gruppo di stringhe che possono verificarsi più di una volta. Vorrei prendere questo elenco e creare un dizionario degli elementi della lista come chiave e il conteggio delle loro occorrenze come valore.Creazione di un dizionario di conteggi di elementi in una lista
Esempio:
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");
e il risultato sarebbe un dizionario contenente:
"Peanut Butter", 2
"Jam", 2
"Food", 2
"Snacks", 1
"Philosophy", 1
ho un modo per fare questo, ma non sembra come sto utilizzando il buon roba in 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;
}
Come ti aggiungere un orderby al primo esempio? – zadam
@zadam Puoi sempre dire 'groups = groups.OrderBy (g => g.Stuff)'; – casperOne