我有很多相似名称的 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/