检查哈希表值的任何部分是否包含特定字符串 c#

Check if any part of a hashtable value contains certain string c#

我将一个文件反序列化为一个哈希表,其中的键包含文件路径,例如 "c:\test\file.txt""c:\store\etc.txt"。然后我需要检查路径 "c:\""c:\test" 的一部分是否包含在这些哈希表键之一中。所以如果 "C:\test\file.txt" 包含 "C:\test" return true.

我可以使用下面的列表(lstLoadedNodes 是列表)简单地做到这一点,效果很好:

if (lstLoadedNodes.Any(s => s.Contains(e.Node.Path)))

我找不到无需匹配整个密钥就可以使用哈希表执行此操作的方法。

当我尝试使用哈希表(checkedNodes 是我的哈希表)时,它仅 returns true 如果确切的字符串匹配:

if (checkedNodes.ContainsKey(e.Node.Path))

如何搜索 hashtable.key 的任何部分?希望这是有道理的!

我知道我可以先将所有值传递给一个列表,然后执行我目前正在做的 "if contains.any" 但这似乎毫无意义所以我宁愿只检查哈希表。

提前致谢。

我想你正在寻找类似的东西:

checkedNodes.Keys.Cast<string>().Any(k => k.Contains(e.Node.Path));