views:

125

answers:

2

I have a DataTable that I'm trying to enumerate over with the AsEnumerable extension method on System.Linq.Enumerable. The problem is that there is an identically named extension method on System.Data.DataTableExtensions. I need to use both namespaces in my class so removing one of the using statements is not an option.

How do I declare that I want the AsEnumerable method from System.Linq.Enumerable and not the System.Data.DataTableExtensions?

+1  A: 

They're just static methods so you could do this:

DataTable dt;
System.Linq.Enumerable.AsEnumerable(dt);
Caleb
Thanks, I'll accept that as the answer. I was hoping there was a way to still use the extension method though.
Jace Rhea
+5  A: 

DataTable does not implement IEnumerable<T>, or even IEnumerable, so you cannot call Enumerable.AsEnumerable() on it directly. That is what DataTableExtensions.AsEnumerable() is for in the first place.

BlueRaja - Danny Pflughoeft
I think you are right. For some reason VS was giving me the ambiguous error for that method which prompted the question, and now I can't recreate it. I accidentally voted you down, if you edit your answer I'll vote you back up.
Jace Rhea