c# - 有没有办法指定不同命名空间中的同名扩展方法使用哪种扩展方法?

标签 c# linq extension-methods

<分区>

使用以下代码片段的简单示例:

using System.Data;
using CustomerNameSpace;
...
...
CDataSet.CustomerDataTable dtCustomer = GetCustomer();

var customersWithName = dtCustomer.AsEnumerable()
    .Where(x => x.Name != null)
    .CopyToDataTable();

出于某种原因,我的同事在 CustomerNameSpace 中创建了一个扩展方法 CopyToDataTable()

本例中的程序同时使用命名空间 System.DataCustomerNameSpace

两者现在都包含扩展方法 CopyToDataTable()

在下面的示例片段中,是否有一种方法可以指定使用这两个命名空间中的哪些扩展方法?

最佳答案

如果您在代码中绝对需要这两个 namespace ,唯一的区别方法是将方法作为“普通”静态方法而不是扩展方法来调用:

var customers = dtCustomer.AsEnumerable()
    .Where(x => x.Name != null);
CustomerNameSpace.MyExtensionsClass.CopyToDataTable(customers);

关于c# - 有没有办法指定不同命名空间中的同名扩展方法使用哪种扩展方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52000381/

相关文章:

c# - ListView - 如何将项目添加到列表的前面

linq - 如何重写 LINQ Any() 以使其适用于 .NET 3.5

c# - 我是在重新发明轮子吗?

c# - 您可以在字典的 ValueTuple 值中声明项目名称吗?

c# - 从任务栏图标最小化恢复时,无边框窗口激活事件未触发

c# - 使用 RSACryptoProvider 在 C# 中验证 PHP OpenSSL 签名

c# - 如果对象为空,如何返回空字符串?

c# - Linq to entities - 两个键之间字符串的第一个字母

c# - 为泛型写一个扩展方法

c# - 接口(interface)扩展方法,具有匹配的通用参数