2010-06-04 2 views
5

J'ai un DataTable que je suis en train d'énumérer sur la méthode d'extension AsEnumerable sur System.Linq.Enumerable. Le problème est qu'il existe une méthode d'extension nommée de façon identique sur System.Data.DataTableExtensions. J'ai besoin d'utiliser les deux espaces de noms dans ma classe, donc supprimer une des instructions using n'est pas une option.Comment résoudre une méthode d'extension nommée de manière ambigüe?

Comment puis-je déclarer que je veux la méthode AsEnumerable de System.Linq.Enumerable et non les System.Data.DataTableExtensions?

Répondre

3

Ils sont des méthodes statiques juste pour que vous puissiez le faire:

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

Merci, je vais accepter cela comme réponse. J'espérais qu'il y avait un moyen d'utiliser encore la méthode d'extension si. –

4

DataTable n'implémente pas IEnumerable <T>, ou même IEnumerable, de sorte que vous ne pouvez pas appeler directement sur Enumerable.AsEnumerable(). C'est pour cela que DataTableExtensions.AsEnumerable() est pour en premier lieu.

+0

Je pense que vous avez raison. Pour une raison quelconque, VS me donnait l'erreur ambiguë pour cette méthode qui a provoqué la question, et maintenant je ne peux pas la recréer. J'ai accidentellement voté pour vous, si vous modifiez votre réponse, je vous rejette. –

Questions connexes