检查哈希表值的任何部分是否包含特定字符串 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));
我将一个文件反序列化为一个哈希表,其中的键包含文件路径,例如 "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));