(Учитывая, что каждая запись является отдельным символом, есть ли причина, по которой у вас, кстати, нет List<char>
?)
Как насчет:
// To get a Dictionary<string, int>
var counts = list.GroupBy(x => x)
.ToDictionary(g => g.Key, g => g.Count());
// To just get a sequence
var counts = list.GroupBy(x => x)
.Select(g => new { Text = g.Key, Count = g.Count() });
Примечаниечто это несколько неэффективно с точки зрения внутреннего представительства.Вы могли бы определенно сделать это более эффективно «вручную», но это также потребовало бы больше работы.Если у вас большой список, я бы придерживался этого.