我的数据库中有以下数据(以逗号分隔的字符串):
“字,测试,你好”
“测试,lorem,字”
“测试”
...
等等
如何将这些数据转换为字典,每个字符串被分成每个不同的单词及其出现的次数,即
{"test", 3}, {"word", 2}, {"hello", 1}, {"lorem", 1}
如果这对所提供的任何解决方案产生影响,我将拥有大约3000行数据。我也使用.NET 3.5(并且有兴趣看到使用linq的任何解决方案)
答案 0 :(得分:9)
IEnumerable<string> strings = ...;
Dictionary<string,int> result = strings.SelectMany(s => s.Split(','))
.GroupBy(s => s.Trim())
.ToDictionary(g => g.Key, g => g.Count());
答案 1 :(得分:1)
这是类似伪代码(尚未尝试编译)
List<string> allRows = getFromDatabase();
var result = new Dictionary<string, int>();
foreach (string row in allRows)
{
string[] words = row.Split(',');
foreach (string word in words)
if (result.ContainsKey(word))
result[word]++;
else
result.Add(word, 1);
}