查找Dictionary <string,object =“”>中的所有值,其中key包含substring </string,>

时间:2014-08-11 14:00:20

标签: c# linq dictionary

假设我有一个字典声明如下:

Dictionary<string, IData> map;

我希望使用包含特定子字符串的键获取所有值,例如像

这样的函数
public IEnumerable<IData> GetContains(string pattern) {}

我想了解如何使用

获取与模式匹配的键列表
var result = mapData.Keys.Where(a => a.Contains(pattern)).ToArray()

但是我无法弄清楚如何重用返回的键来获取一个查询中的所有相应值。

2 个答案:

答案 0 :(得分:12)

您可以在Where上使用Dictionary代替Keys集合,然后使用Select获取值:

mapData.Where(kvp => kvp.Key.Contains(pattern)).Select(kvp => kvp.Value);

答案 1 :(得分:1)

我认为这应该有用

var result = mapData.Where(entry => entry.Key.Contains(pattern))
                    .Select(item => item.Value);