Mon*_*RPG 1 c# string list c#-4.0 linq-group
我有超过600k的字符串.我想将相同的字符串分组并了解它们的数量.
这样的例子
i go to school
i like music
i like games
i like music
i like music
i like games
i like music
Run Code Online (Sandbox Code Playgroud)
所以结果会是
i go to school , 1
i like games , 2
i like music , 4
Run Code Online (Sandbox Code Playgroud)
我怎样才能以最快的方式做到这一点?
这个GroupBy方法就是你想要的.您需要将您的字符串放在列表或实现的内容中IEnumerable<string>.在File.ReadLines由富豪建议将返回的IEnumerable<string>是逐行读取文件中的行.
var stringGroups = File.ReadLines("filename.txt").GroupBy(s => s);
foreach (var stringGroup in stringGroups)
Console.WriteLine("{0} , {1}", stringGroup.Key, stringGroup.Count());
Run Code Online (Sandbox Code Playgroud)
如果你想要它们的顺序最少(如你的例子),只需添加一个 OrderBy
...
foreach (var stringGroup in stringGroups.OrderBy(g => g.Count()))
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
368 次 |
| 最近记录: |