如何从键包含子字符串的字典中获取(键,值)的集合?

时间:2019-03-01 18:14:11

标签: c#

我有一个Dictionary<string, string>,我在其中存储配置文件的路径,例如:

Config0, <some path>
Config1, <some path>
Config2, <some path>
Someconfigkey, <some path>
Someconfigkey, <some path>
Someconfigkey, <some path>
...
...

我想从此字典中获取所有包含子字符串Config的键的值,

任何建议如何有效地做到这一点?

2 个答案:

答案 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">