首页 > 解决方案 > 如何遍历字典中满足某些条件的所有项目?C#

问题描述

我目前正在做一个项目,我必须遍历字典。我只想遍历包含 a 子字符串的字典中的键。因此,对于字典(键,值),我只想遍历该字典中键包含 A 的对。

我该怎么做?

标签: c#dictionary

解决方案


我该怎么做?

字典仅在检查相等性时提供 O(1)(快速)访问。没有办法在不循环的情况下“选择”包含值的键:

foreach(var entry in myDictionary)
{
    if(entry.Key.Contains("A"))
        // do something with entry.Value
}

您可以使用WhereLinq 中的方法,但它没有提供任何性能改进(它仍然在内部循环):

foreach(var entry in myDictionary.Where(e => e.Key.Contains("A"))
{
    // do something with entry.Value
}


推荐阅读