c# - 在字典中查找重复值

标签 c# dictionary loops

我正在写一个小程序来查找重复文件

我遍历目录中的每个文件

然后我将文件路径和该文件的 md5hash 加载到字典中(文件路径是键)

接下来我想遍历字典中的每个值以查看是否有任何值匹配然后在显示窗口中显示两个+键

但是我不确定如何不显示重复的结果

1a
2b
3a
4c

如果我对键值对使用 for each 循环,我将获得 1 匹配 3 的条目,然后是 3 匹配 1

如果我有一个搜索,我可以读取搜索字符串下面的所有内容,而不必担心(而且我相信它会更有效率)

这种类型的循环有名字吗(请原谅我缺乏正式知识)

或者最好的做法是删除找到的任何字典条目?

最佳答案

如果我没理解错的话,您是在使用散列来确定两个文件是否相同,并且您是在使用散列作为字典键。你不能在字典中有重复的键,所以你想要一个 Dictionary<Hash, IList<string>>并将任何文件添加到每个哈希值的列表中。

关于c# - 在字典中查找重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1272390/

相关文章:

swift - 有类似 "reversible dictionary"的东西吗?

Python 从 Stdin Unbuffered 读取和输出

python - 如何对此进行循环?

c# - 一个程序集中的多个服务。安装程序如何知道要安装和启动哪个服务?

dictionary - 从 map 中获取任意键/项目

c# - 在c#中读取文本文件中的不同 block

c++ - 在 map/unordered_map 中使用多个键(多维)

excel - 如何使用 2 张纸和多个条件使用 For Next 循环返回单元格值 - VBA

c# - 正则表达式拆分

c# - 仅从指定的命名空间解决依赖关系