IQueryable转换为列表

时间:2009-09-28 10:26:37

标签: c# 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 个答案:

答案 0 :(得分:3)

试试这个:

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

Enumerable.Select扩展方法允许您为当前序列中的每个值将新值投影到新序列中。基本上,它使您能够从其他序列生成序列,并在其间进行转换。

然后Enumerable.ToList扩展方法只会根据List<T>方法生成Select来创建新的IEnumerable<T>

答案 1 :(得分:0)

ionFormViewModels = ions.Select(ion => new ionFormViewModel(ion)).ToList();

答案 2 :(得分:0)

List<ionFormViewModel> ionFormViewModels = ions.Select(i => new ionFormViewModel(i)).ToList()
相关问题