快速查询字典中符合要求的元素C#dictionary

归来>亦少年 2015-05-20 01:36:19
我有一个字典dictionary(int,string)
数据有下列
1,"LUSI"
2,"LUSI"
3,"Lilei"
4,“hanmeimei”

现在我要找出名字为LUSI的所有元素,请问大家最快速的方法是什么,比如说limada等
...全文
982 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
宝_爸 2015-05-21
  • 打赏
  • 举报
回复
排序后再找? 要想优化性能,需要更多的信息。 数据变化频繁吗?容器中一般有多少条数据等等。
hi_my_god 2015-05-21
  • 打赏
  • 举报
回复
foreach(var item in in dic.Values) { }
於黾 2015-05-20
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
要想“倒排”查找,需要另外创建一个字典,你一个 Dictionary<string, List<int>> 结构的字典。然后你的程序需要多写上1、2行代码,每当增加数据时都将数据同时插入两个字典中。
这应该是个可行的办法 但是真正实行起来,应该不只是一两行代码的事情 除非字典只增加key,不删除,不修改
by_封爱 版主 2015-05-20
  • 打赏
  • 举报
回复

            Dictionary<int, string> list = new Dictionary<int, string>();
            list.Add(1, "a");
            list.Add(2, "a");
            list.Add(3, "b");
            list.Add(4, "c");
            list.Where(d => d.Value == "a").ToList().ForEach(item => {
                Console.WriteLine("Key=" + item.Key + ";Value=" + item.Value);
            });
xuzuning 2015-05-20
  • 打赏
  • 举报
回复
你这没必要 Dictionary<int, string> 只需 List<string> 毕竟 Dictionary 和 List 用法上还是有差异的 "LUSI",{1,2} "Lilei",{3} “hanmeimei”,{4} 这样的数据才需要 Dictionary<string,int[]>
by_封爱 版主 2015-05-20
  • 打赏
  • 举报
回复
我一眼就看出来了是1跟2 厉害吧
  • 打赏
  • 举报
回复
Value,在字典里能有什么快速查法……
  • 打赏
  • 举报
回复
要想“倒排”查找,需要另外创建一个字典,你一个 Dictionary<string, List<int>> 结构的字典。然后你的程序需要多写上1、2行代码,每当增加数据时都将数据同时插入两个字典中。
  • 打赏
  • 举报
回复
字典的作用是按照key进行 TryGetValue 查询操作。你的结构本来就是滥用字典的。
於黾 2015-05-20
  • 打赏
  • 举报
回复
没有所谓快速查询方法 不管你怎么查,最终还是要把所有的值都遍历一遍 用linq或lamada也不过是节约代码,并不提高查询效率

110,538

社区成员

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

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

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