如何解决名为ambigiously的扩展方法?

时间:2010-06-04 19:24:34

标签: c# .net extension-methods ambiguous-call

我有一个DataTable,我试图使用System.Linq.Enumerable上的AsEnumerable扩展方法进行枚举。问题是System.Data.DataTableExtensions上有一个同名的扩展方法。我需要在我的类中使用这两个命名空间,因此删除其中一个using语句不是一个选项。

如何从System.Linq.Enumerable声明我想要AsEnumerable方法而不是System.Data.DataTableExtensions?

2 个答案:

答案 0 :(得分:4)

DataTable不实现IEnumerable< T>,甚至IEnumerable,因此您无法直接调用Enumerable.AsEnumerable()。这就是DataTableExtensions.AsEnumerable()首先要做的事情。

答案 1 :(得分:3)

它们只是静态方法,所以你可以这样做:

DataTable dt;
System.Linq.Enumerable.AsEnumerable(dt);