假设我有一个字典声明如下:
Dictionary<string, IData> map;
我希望使用包含特定子字符串的键获取所有值,例如像
这样的函数public IEnumerable<IData> GetContains(string pattern) {}
我想了解如何使用
获取与模式匹配的键列表var result = mapData.Keys.Where(a => a.Contains(pattern)).ToArray()
但是我无法弄清楚如何重用返回的键来获取一个查询中的所有相应值。
答案 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);