C# 如何在ConcurrentDictionary上编写扩展方法
我将ConcurrentDictionary对象定义为C# 如何在ConcurrentDictionary上编写扩展方法,c#,c#-4.0,extension-methods,C#,C# 4.0,Extension Methods,我将ConcurrentDictionary对象定义为ConcurrentDictionary,其中dirty标志是具有dirty/Clean值的枚举 我正在尝试编写一个扩展方法来只获取脏对象。DirtyFlag设置为“脏”的对象 我尝试使用此选项,但它给了我一个错误: public static ConcurrentDictionary<int, DirtyFlag> GetDirtyRoutes(this ConcurrentDictionary<int, DirtyFla
ConcurrentDictionary
,其中dirty标志是具有dirty/Clean值的枚举
我正在尝试编写一个扩展方法来只获取脏对象。DirtyFlag设置为“脏”的对象
我尝试使用此选项,但它给了我一个错误:
public static ConcurrentDictionary<int, DirtyFlag> GetDirtyRoutes(this ConcurrentDictionary<int, DirtyFlag> wholeDictionary)
{
return wholeDictionary.SelectMany(a => a.Value == DirtyFlag.Dirty);
}
公共静态ConcurrentDictionary GetDirtRoutes(此ConcurrentDictionary wholeDictionary)
{
返回wholeDictionary.SelectMany(a=>a.Value==DirtyFlag.Dirty);
}
这是我收到的错误消息:
The type arguments for method 'System.Linq.Enumerable.SelectMany<TSource,TResult>
(System.Collections.Generic.IEnumerable<TSource>,
System.Func<TSource,System.Collections.Generic.IEnumerable<TResult>>)' cannot
be inferred from the usage. Try specifying the type arguments explicitly.
方法'System.Linq.Enumerable.SelectMany'的类型参数
(System.Collections.Generic.IEnumerable,
System.Func)“”不能
可以从用法推断。尝试显式指定类型参数。
有什么帮助吗?公共静态ConcurrentDictionary GetDirtRoutes(此ConcurrentDictionary wholeDictionary)
public static ConcurrentDictionary<int, DirtyFlag> GetDirtyRoutes(this ConcurrentDictionary<int, DirtyFlag> wholeDictionary)
{
return new ConcurrentDictionary<int, DirtyFlag>(
wholeDictionary.Where(a => a.Value == DirtyFlag.Dirty)
);
}
{
返回新的ConcurrentDictionary(
wholeDictionary.Where(a=>a.Value==DirtyFlag.Dirty)
);
}
您可以通过此链接获得问题的答案