读书人

hashtable限定数量输出有关问题

发布时间: 2012-05-28 17:59:33 作者: rapoo

hashtable限定数量输出问题
一个有10000多行,分行读取并存入hashtable中,想让hashtable有1000条时输出,最后不足1000条的也输出到一个文本中

C# code
Hashtable ht = new Hashtable( 1000 );         string line;           using (StreamReader sr = new StreamReader(inFilePath, Encoding.Default))           {               while (sr.Peek() >= 0)               {                   line = sr.ReadLine();                   ht.Add(line,null);               }           }            StreamWriter sw = new StreamWriter(outpath, false, Encoding.Default);           .....

问题是初始化hashtable的大小后,所有的内容还是都加进了ht中
菜鸟请教。。。

[解决办法]
用 List 就可以了。

HashTable的初始大小和限制容量没有一点关系,你属于用错误的方法解决错误的问题。

List<string> list = new List<string>();
using (StreamReader sr = new StreamReader(inFilePath, Encoding.Default))
{
while (sr.Peek() >= 0)
{
line = sr.ReadLine();
list.Add(line);
if (list.Count() > 1000)
{
StreamWriter sw = new StreamWriter(outpath, false, Encoding.Default);
...
}
}
}

[解决办法]
探讨
楼上:用List不能清除重复数据,要不然人家也不用hashtable了。
楼主:Hashtable( 1000 )并不能限定hashtable的最终长度,所以在添加数据处还得自己判断。

[解决办法]
探讨
问题是初始化hashtable的大小后,所有的内容还是都加进了ht中

[解决办法]
探讨
引用:

用 List 就可以了。

HashTable的初始大小和限制容量没有一点关系,你属于用错误的方法解决错误的问题。

List<string> list = new List<string>();
using (StreamReader sr = new StreamReader(inFilePath, Encoding.Default))
……

读书人网 >C#

热点推荐