C#字典过滤(LINQ)和列表扩展方法过滤值并获取密钥

时间:2018-05-27 19:38:25

标签: c# linq dictionary

我有一本字典fooDictionary<string, MyObject>

我正在过滤fooDictionary以获取具有特定属性值的MyObject。

fooDictionary.Values.Where(x=>x.Boo==false).ToList().ExtensionMethod();

//(扩展方法是我为列表做的扩展方法(用于更多过滤)(PS:ExtensionMethod仅返回1x MyObject)) 但我也想获得已经过滤的MyObject的键。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

当您使用fooDictionary.Values.Where(...)操作字典值时,您将无法再访问这些键。

而是将查询更改为:

fooDictionary.Where(x => x.Value.Boo == false).ToList().ExtensionMethod();

ToList()调用之后,这应该产生List<KeyValuePair<string, MyObject>>因此保持密钥和相应的值。