积极答复者
这两种情况用哪种泛型比较合适?

问题
答案
-
第一种情况:直接用List<T>就可以了(比如List<string>,每次添加的时候使用IndexOf函数看看那有没有东西在,http://msdn.microsoft.com/zh-cn/library/s6hkc2c4.aspx)
第二种情况:不建议一下子读取,建议分业一样读取一批,操作一批即可。
如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请QQ我
下载MSDN桌面工具(Vista,Win7)
下载Technet桌面小工具(Vista,Win7)
慈善点击,点击此处- 已标记为答案 Charles Shao 2011年5月30日 2:32
-
2. 这个实际上是一个需求问题,而非编程问题。
首先 windows x64 系统最大可支持 2TB 的内存。 基本没有问题。
而问题在于,你需要的响应速度是多少? 是否需要极快的响应速度,要是那样,就把所有东西都载入内存,查找起来速度快。当然这样要付出硬件成本。
如果不需要极快的响应速度,也不想使用太多的硬件,如 Wei_Dong 所说,分块慢慢找也行。
学习学习....- 已标记为答案 Charles Shao 2011年5月30日 2:32
-
第一点:List<T> 即可
第二点:建议下面两种方式
1 使用数据库方案。
2 将这些数据分类并拆成 N 块, 分别放到多个服务器上,一个服务器承载一部分数据,另外再使用一台服务器去解析请求并将请求转发给指定的服务器。
知识改变命运,奋斗成就人生!- 已标记为答案 Charles Shao 2011年5月30日 2:32
-
第一,如果要快速查找,且数据量不大,HashSet 是个不错的选择。
第二,如果数据量一旦增大了,建议还是用数据库表吧,所有的 .NET 结构都是基于 GetHashCode 计算哈希索引值的,超过 10 亿的时候 GetHashCode 的返回值不一定均匀,也会有重复,这种情况下会极大降低其索引性能。
Mark Zhou- 已标记为答案 Charles Shao 2011年5月30日 2:32
-
dear
1. .NET有很多集合可以達到你的目標,不知您是否還有其他條件,比如說需不需要排序,您可參考以下查閱
http://www.dotblogs.com.tw/yc421206/archive/2009/01/25/6941.aspx2.那麼大量的資料應該是由資料庫(SQL 或 Oracle)取出,你若想一次取出,只要你硬體設備夠牛當然沒問題,但也得考慮資料搜索時間成本,資料庫的正規化設計也很重要
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/- 已标记为答案 Charles Shao 2011年5月30日 2:33
-
第一,如果要快速查找,且数据量不大,HashSet 是个不错的选择。
第二,如果数据量一旦增大了,建议还是用数据库表吧,所有的 .NET 结构都是基于 GetHashCode 计算哈希索引值的,超过 10 亿的时候 GetHashCode 的返回值不一定均匀,也会有重复,这种情况下会极大降低其索引性能。
Mark Zhou
1. 不需要排序. 只需要单值快速检索即可.2. 这个系统是后台服务.为了达到效率最高,所有数据直接写入文件系统, 服务启动时直接加载所有数据,服务器的内存足够大(64bit)
信奎爷,无所畏惧!!- 已标记为答案 Charles Shao 2011年5月30日 2:32
全部回复
-
第一种情况:直接用List<T>就可以了(比如List<string>,每次添加的时候使用IndexOf函数看看那有没有东西在,http://msdn.microsoft.com/zh-cn/library/s6hkc2c4.aspx)
第二种情况:不建议一下子读取,建议分业一样读取一批,操作一批即可。
如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请QQ我
下载MSDN桌面工具(Vista,Win7)
下载Technet桌面小工具(Vista,Win7)
慈善点击,点击此处- 已标记为答案 Charles Shao 2011年5月30日 2:32
-
2. 这个实际上是一个需求问题,而非编程问题。
首先 windows x64 系统最大可支持 2TB 的内存。 基本没有问题。
而问题在于,你需要的响应速度是多少? 是否需要极快的响应速度,要是那样,就把所有东西都载入内存,查找起来速度快。当然这样要付出硬件成本。
如果不需要极快的响应速度,也不想使用太多的硬件,如 Wei_Dong 所说,分块慢慢找也行。
学习学习....- 已标记为答案 Charles Shao 2011年5月30日 2:32
-
第一点:List<T> 即可
第二点:建议下面两种方式
1 使用数据库方案。
2 将这些数据分类并拆成 N 块, 分别放到多个服务器上,一个服务器承载一部分数据,另外再使用一台服务器去解析请求并将请求转发给指定的服务器。
知识改变命运,奋斗成就人生!- 已标记为答案 Charles Shao 2011年5月30日 2:32
-
第一,如果要快速查找,且数据量不大,HashSet 是个不错的选择。
第二,如果数据量一旦增大了,建议还是用数据库表吧,所有的 .NET 结构都是基于 GetHashCode 计算哈希索引值的,超过 10 亿的时候 GetHashCode 的返回值不一定均匀,也会有重复,这种情况下会极大降低其索引性能。
Mark Zhou- 已标记为答案 Charles Shao 2011年5月30日 2:32
-
dear
1. .NET有很多集合可以達到你的目標,不知您是否還有其他條件,比如說需不需要排序,您可參考以下查閱
http://www.dotblogs.com.tw/yc421206/archive/2009/01/25/6941.aspx2.那麼大量的資料應該是由資料庫(SQL 或 Oracle)取出,你若想一次取出,只要你硬體設備夠牛當然沒問題,但也得考慮資料搜索時間成本,資料庫的正規化設計也很重要
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/- 已标记为答案 Charles Shao 2011年5月30日 2:33
-
第一,如果要快速查找,且数据量不大,HashSet 是个不错的选择。
第二,如果数据量一旦增大了,建议还是用数据库表吧,所有的 .NET 结构都是基于 GetHashCode 计算哈希索引值的,超过 10 亿的时候 GetHashCode 的返回值不一定均匀,也会有重复,这种情况下会极大降低其索引性能。
Mark Zhou
1. 不需要排序. 只需要单值快速检索即可.2. 这个系统是后台服务.为了达到效率最高,所有数据直接写入文件系统, 服务启动时直接加载所有数据,服务器的内存足够大(64bit)
信奎爷,无所畏惧!!- 已标记为答案 Charles Shao 2011年5月30日 2:32