我有一个Dictionary<string, string>
,我在其中存储配置文件的路径,例如:
Config0, <some path>
Config1, <some path>
Config2, <some path>
Someconfigkey, <some path>
Someconfigkey, <some path>
Someconfigkey, <some path>
...
...
我想从此字典中获取所有包含子字符串Config
的键的值,
任何建议如何有效地做到这一点?
答案 0 :(得分:1)
由于键是根据键的值进行散列的,因此,如果您不搜索确切的键值,则需要遍历键/值对的整个集合:
foreach (var kvp in dict)
{
if(kvp.Key.Contains(term))
{
// do something
}
}
您可以使用Where
将其转换为Linq查询,但是从效率的角度来看,这无非是循环。
如果您一致搜索子字符串Config
,则可以尝试使用两个字典:“ config”字典和“ non-config”字典。遍历它们中的每一个仍然是O(n),但是您只会遍历您知道包含子字符串的条目(您的“ n”会更小)。
答案 1 :(得分:0)
以下免税代码将基于另一个词典创建一个新词典。
<mypackage.CustomPreferenceCategory android:title="Login email">