Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ConcurrentDictionary上编写扩展方法_C#_C# 4.0_Extension Methods - Fatal编程技术网

C# 如何在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对象定义为
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) ); }
您可以通过此链接获得问题的答案