2009-09-28 14 views
1

Quelque chose de si simple, mais ma tête en souffre, je suis sûr que je peux écrire cela en une ligne lors de la conversion, mais comment?IQueryable convertir à la liste

IQueryable<ion> ions =FindAllions(); 

List<ionFormViewModel> ionFormViewModels = new List<ionFormViewModel>(); 

foreach (ion ion in ions) 
{ 
    ionFormViewModel ionFormViewModel = new ionFormViewModel(ion); 
    ionFormViewModels.Add(ionFormViewModel); 
} 

Répondre

3

Essayez ceci:

List<ionFormViewModel> ionFormViewModels 
    = ions.Select(i => new ionFormViewModel(i)).ToList(); 

La méthode d'extension Enumerable.Select vous permet de projeter une nouvelle valeur dans une nouvelle séquence pour chaque valeur dans la séquence actuelle. Fondamentalement, il vous donne la possibilité de générer des séquences à partir d'autres séquences avec une étape de transformation entre les deux.

Ensuite, la méthode d'extension Enumerable.ToList crée simplement un nouveau List<T> à partir de IEnumerable<T> de la méthode Select.

0
ionFormViewModels = ions.Select(ion => new ionFormViewModel(ion)).ToList(); 
0
List<ionFormViewModel> ionFormViewModels = ions.Select(i => new ionFormViewModel(i)).ToList() 
Questions connexes