2009-09-28 41 views
1

這麼簡單的東西,但我的頭被傷害了它,我相信我可以在同一行寫這個轉換的時候,但如何?IQueryable的轉換,列出

IQueryable<ion> ions =FindAllions(); 

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

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

回答

3

試試這個:

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

Enumerable.Select擴展方法允許你投射出新的價值轉化爲在當前的序列中的每個值的新序列。基本上,它讓您可以生成與其它序列的序列與之間的變換步驟的能力。

然後Enumerable.ToList擴展方法只需從Select方法的產生IEnumerable<T>創建一個新的List<T>

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