c# - 如何计算列表中的相似词?

标签 c# asp.net

我有很多相似名称的 C# 列表,我想计算所有单独的相似词。

例子

假设列表有这些值

one,one,one,two,two,four,four,four

然后我想这样计算

one 3
two 2
four 3 

我如何从列表中计算出这样的值。

最佳答案

我会用逗号拆分字符串,遍历所有结果并将每个单词添加到哈希表或字典中,值为 1。如果单词 (key) 已经存在,则增加该值。

string[] values = "one,one,one,two,two,four,four,four".Split(',');
var counts = new Dictionary<string, int>();

foreach (string value in values) {
    if (counts.ContainsKey(value))
        counts[value] = counts[value] + 1;
    else 
        counts.Add(value, 1);
}

或者,如果您愿意,这里有一个 LINQ 解决方案

var counts = values.GroupBy<string, string, int>(k => k, e => 1)  
   .Select(f => new KeyValuePair<string, int>(f.Key, f.Sum()))   
   .ToDictionary(k => k.Key, e => e.Value);  

关于c# - 如何计算列表中的相似词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1805063/

相关文章:

c# - 向服务总线 1.0 队列发送消息时发生套接字错误

c# - Visual Studio 获取自动增量产品版本

c# - system.outofmemoryexception 填充DataAdapter时?

c# - 我们可以像在 c# 中的数据库中那样以排序方式将数据填充到文本框中吗?

c# - 序列化对象数组

c# - 检索 scope_identity 时指定的转换无效

c# - 单击下一步转到第一个选项卡时,ASP.NET C# datagridview 在第二个选项卡内分页

c# - 使用存储库对基本 C# 应用程序进行单元测试

asp.net - IIS7.5 上的 ASP4.5 出现异常 Collection is read-only 错误

c# - 在运行时确定我自己的应用程序的哈希值?