假设:
假设我们已经在 List<string> 对象中拥有文本文件的每一行,我们将调用 names,并且文本文件中的每一行代表一个拼写正确的全名。
分组/打印数据:
使用 LINQ,我们可以将这些值自己分组(类似于 SQL),然后将 IGrouping 结果转换为我们希望稍后在应用程序中使用的对象。例如:
var totals = names.GroupBy(x => x)
.Select(group => new { Name = group.Key, Count = group.Count() });
foreach ( var total in totals )
{
Console.WriteLine($"{total.Name} | {total.Count} times");
}
另一种选择是使用您现有的代码并打印出字典的值
var totals = names
.Select(s => new { Key = s.Key, Count = s.Count()})
.ToDictionary(d => d.Key, d => d.Count);
foreach ( var kvp in totals )
{
Console.WriteLine($"{kvp.Key} | {kvp.Value} times");
}
保存/显示数据:
如果您想做其他事情然后打印到控制台,您可以简单地将数据操作为您想要的值。例如,如果您想将其保存到另一个文件:
var csvContent = totals
.Select(total => $"{total.Name},${total.Count} times")
.ToArray();
File.WriteAllLines(filePath, csvContent);
或者你可以创建一个字符串(例如上面的:String.Join("\n", csvContent))并更新一个 RichTextBox like so