Tôi có một Danh sách chứa một chuỗi các chuỗi có thể xuất hiện nhiều lần. Tôi muốn lấy danh sách này và xây dựng một từ điển của các mục danh sách dưới dạng khóa và số lần xuất hiện của chúng như là giá trị.Xây dựng một từ điển đếm các mục trong danh sách
Ví dụ:
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");
và kết quả sẽ là một từ điển bao gồm:
"Peanut Butter", 2
"Jam", 2
"Food", 2
"Snacks", 1
"Philosophy", 1
Tôi có một cách để làm điều này, nhưng nó không có vẻ như tôi đang sử dụng tốt thứ trong 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;
}
Làm thế nào bạn sẽ thêm một orderby với ví dụ đầu tiên? – zadam
@zadam Bạn luôn có thể nói 'groups = groups.OrderBy (g => g.Stuff)'; – casperOne