5

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?

Jace Rhea
  • 4,982
  • 4
  • 36
  • 55

2 Answers2

4

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
  • 84,206
  • 33
  • 197
  • 283
  • 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 Jun 04 '10 at 20:03
3

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

DataTable dt;
System.Linq.Enumerable.AsEnumerable(dt);
Caleb
  • 9,272
  • 38
  • 30
  • Thanks, I'll accept that as the answer. I was hoping there was a way to still use the extension method though. – Jace Rhea Jun 04 '10 at 19:34