【问题标题】:C# Dictionary filtering (LINQ) and list extension method filtering values and getting the keyC# 字典过滤 (LINQ) 和列表扩展方法过滤值并获取密钥
【发布时间】:2018-05-27 19:38:24
【问题描述】:

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

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

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

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

【问题讨论】:

标签: c# linq dictionary


【解决方案1】:

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

改为将查询更改为:

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

ToList() 调用之后,这应该会产生一个List<KeyValuePair<string, MyObject>>,从而保持键和对应的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多