2010-06-04 21 views
5

Possiedo un DataTable che sto cercando di enumerare con il metodo di estensione AsEnumerable su System.Linq.Enumerable. Il problema è che esiste un metodo di estensione con nome identico su System.Data.DataTableExtensions. Ho bisogno di usare entrambi i namespace nella mia classe, quindi rimuovere una delle istruzioni using non è un'opzione.Come risolvere il metodo di estensione con nomi ambigui?

Come si dichiara che voglio il metodo AsEnumerable da System.Linq.Enumerable e non System.Data.DataTableExtensions?

risposta

3

Sono metodi statici solo così si potrebbe fare questo:

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

Grazie, lo accetterò come risposta. Speravo che ci fosse un modo per utilizzare ancora il metodo di estensione però. –

4

DataTable non implementa IEnumerable <T>, o anche IEnumerable, quindi non si può chiamare Enumerable.AsEnumerable() su di esso direttamente. Questo è ciò che è DataTableExtensions.AsEnumerable() in primo luogo.

+0

Penso che tu abbia ragione. Per qualche ragione VS mi ha dato l'errore ambiguo per quel metodo che ha provocato la domanda, e ora non riesco a ricrearlo. Ti ho accidentalmente votato, se modifichi la tua risposta ti voterò di nuovo. –