如何实现高效匹配?

Tommy_gc 2009-06-04 11:54:38
结构如下:
1001 张三
1002 李四
1003 王五
1004 吴永
1005 刘伟

比如我得到1001,通过什么方式(算法)得到张三?

要求:简单好用效率高,不论用什么方法

考虑两种情况:1.数据少的时候,比如只有3~5条数据;2.数据巨大的时候,比如>10W条
...全文
140 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
llsen 2009-06-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 Tommy_gc 的帖子:]
结构如下:
1001 张三
1002 李四
1003 王五
1004 吴永
1005 刘伟

比如我得到1001,通过什么方式(算法)得到张三?

要求:简单、好用、效率高,不论用什么方法

考虑两种情况:1.数据少的时候,比如只有3~5条数据;2.数据巨大的时候,比如>10W条
[/Quote]

1.数据少的时候,直接select name from tb where id = '10001'
2.数据多的时候建立索引,10W条数据,用上面的检索也还可以
Mr-Jee 2009-06-04
  • 打赏
  • 举报
回复
字典不用 何时用
修改一下昵称 2009-06-04
  • 打赏
  • 举报
回复
id如果没有重复的就用Dictionary,数据库表也行。
我不懂电脑 2009-06-04
  • 打赏
  • 举报
回复
使用oracle内存数据库,用sql查询
Richard345265669 2009-06-04
  • 打赏
  • 举报
回复
还是在数据库中处理吧,那么大的数据量,弄到内存里不管怎么都很消耗资源
冷月孤峰 2009-06-04
  • 打赏
  • 举报
回复
HashTable、Dictionary等都可以
ztenv 2009-06-04
  • 打赏
  • 举报
回复
1、如果是放到数据库中就用select语句取得整个记录
2、如果是这些数据已经读到内存并且生成类了,那就用linq(或用字典)不过字典不适合数据太多了,否则严重占用内存
evaa006 2009-06-04
  • 打赏
  • 举报
回复
Dictionary
surlew 2009-06-04
  • 打赏
  • 举报
回复
数据库表id为主键
id name
1001 张三
1002 李四
1003 王五
1004 吴永
1005 刘伟

直接查数据库表
ChrisAK 2009-06-04
  • 打赏
  • 举报
回复
SortedList<T>
Dictionary<T>
HashTable
HSZDDD 2009-06-04
  • 打赏
  • 举报
回复
数据大,就考虑索引和数据视图吧!
bell49 2009-06-04
  • 打赏
  • 举报
回复
from t in DataClasses1DataContext.table where t.id.ToString().StartsWith(i*10000)&&t.id.ToString()=="10001" select t;

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧