Per gli amanti di DataSet e DataTable, ecco come possiamo utilizzare l'oggetto SqlDataAdapter per trasformare il risultato di una query LINQ i una delle due strutture che ho appena citato:
NorthwindDataContext context = new NorthwindDataContext();
var results = from c in context.Customers
where c.City == "London"
select c;
SqlCommand cmd = context.GetCommand(results) as SqlCommand;
DataTable dataTable = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dataTable);
A mio parere, considerando le potenzialità di LINQ e degli oggetti di tipo DataContext, questa conversione non serve a molto, anzi, a fronte dell'utilizzo di moli massicce di dati, tende sicuramente a peggiorare le prestazioni della nostra applicazione. In contesti semplici invece, con pochi dati o magari con pezzi di codice già scritti in precedenza e che non abbiamo intenzione di "migrare", allora può essere utile.