【发布时间】:2012-01-13 11:25:50
【问题描述】:
我在 C# 中遇到了 HashSet 的问题......
这是我的代码:
List<int> elements = new List<int>();
for(int i = 0;i< 100000;i++)
{
elements.Add(i);
}
HashSet<int> c = new HashSet<int>();
foreach(var ele in elements)
{
c.Add(ele);
}
Console.WriteLine("Working HashSet " + c.Count);
var Numbers = new HashSet<int>();
var mycount = 0;
using (TextReader reader = File.OpenText(@"myfile.txt"))
{
while ((line = reader.ReadLine()) != null)
{
mycount++;
int parsed = int.Parse(line);
Numbers.Add(parsed);
}
}
Console.WriteLine("my counter took" + mycount);
Console.WriteLine("Bad HashSet" + Numbers.Count);
工作哈希集 100 000
我的柜台花了 500 000
错误的哈希集 9999
为什么第二个哈希集没有添加 500 000 个项目???? 这对我来说是个谜
【问题讨论】:
-
myfile.txt中有多少个不同的数? -
这里没有比较,txt文件里有什么?
Numbers.Add(mycount);有没有给你这个数字! -
试试
myCount += (Numbers.Add(parsed)) ? 1 : 0而不是myCount++
标签: c# data-structures memory-management while-loop hashset