Can*_*hiu 14 c# extension-methods
LinqKit有一个扩展方法ForEach用于IEnumerable与相冲突System.Collections.Generic.IEnumerable.
Error 4 The call is ambiguous between the following methods or properties:
'LinqKit.Extensions.ForEach<Domain>(System.Collections.Generic.IEnumerable<Domain>, System.Action<Domain>)'
and
'System.Linq.EnumerableExtensionMethods.ForEach<Domain>(System.Collections.Generic.IEnumerable<Domain>, System.Action<Domain>)'
Run Code Online (Sandbox Code Playgroud)
我怎样才能摆脱这个错误?
Ree*_*sey 22
Enumerable在框架中,没有声明扩展名ForEach().这两个都来自外部参考.
你应该考虑只使用其中一个 - 要么是添加的参考,EnumerableExtensionMethods要么是LinqKit.
(这,顺便说一句,是使用与框架相同的命名空间导致问题的一个原因 - 在这种情况下,EnumerableExtensionMethods放置它的作者System.Linq,这将在您使用Linq并且您有命名空间冲突时导致问题.)
如果你真的需要使用这个方法,那么你必须直接调用它而不是使用扩展方法,即:
LinqKit.Extensions.ForEach(collection, action);
Run Code Online (Sandbox Code Playgroud)
要么:
System.Linq.EnumerableExtensionMethods.ForEach(collection, action);
Run Code Online (Sandbox Code Playgroud)
话虽这么说,我个人只是使用foreach循环来处理元素.
| 归档时间: |
|
| 查看次数: |
6765 次 |
| 最近记录: |