Ich habe eine Liste mit einer Reihe von Zeichenfolgen, die mehrmals vorkommen können. Ich möchte diese Liste nehmen und ein Wörterbuch der Listenelemente als den Schlüssel und die Zählung ihrer Vorkommen als den Wert aufbauen.Erstellen eines Wörterbuchs mit Zählungen von Elementen in einer Liste
Beispiel:
"Peanut Butter", 2
"Jam", 2
"Food", 2
"Snacks", 1
"Philosophy", 1
Ich habe einen Weg, dies zu tun, aber es scheint nicht, wie ich das gute Verwendung bin:
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");
und das Ergebnis ein Wörterbuch enthält, wäre Sachen 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;
}
Wie würden Sie einen orderby dem ersten Beispiel hinzufügen? – zadam
@zadam Sie können immer sagen: groups = groups.OrderBy (g => g.Stuff) '; – casperOne