我有一个文本文件,其中包含很多数字(500,000+)。
我想将所有唯一值添加到列表中,并计算它在整个数据集中出现的次数。
所以像:
23232: 55656565 times
35354: 45452 times
45454: 74747 times
我在C#中的代码可以将所有出现的事件添加到列表中,但是无法计算出现次数:
private void CountUnique()
{
List<Double> source = new List<double>();
double sourceID = 0;
StreamReader file = new StreamReader("trace.txt")
while((line = file.ReadLine()) != null)
{
string[] words = line.split(' ');
sourceID = double.Parse(words[1]);
sourceList.Add(sourceID)
}
}
如何获得我想要的输出?
对双打列表进行分组,然后使用分组中的键和每个分组的计数将其放入字典中。
Dictionary<double,int> counts = source.GroupBy(d => d)
.ToDictionary( g => g.Key, g => g.Count());
这是一个简单的种子:
var source = Enumerable.Range(0,500)
.Select(i => ( i % 6 ) + 0.02).ToList(); // just simple doubles list
这是输出:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句