[英]How do I convert IEnumerable to Collection with linq
我正在用ProductViewModel中的产品填充局部视图。 模型回来时,我们有...
var viewModel = _productAgent.GetProductsByCatalog(catalogId);
viewModel是ProductViewModel的集合
我正在使用linq将集合的大小限制为由createDate desc排序的前10个产品,例如...
var newList = (from p in viewModel
//from pf in p.DomainObjectFields
select p).Distinct().OrderByDescending(d => d.CreateDate).Take(10);
我尝试加载部分...
return PartialView("_ProductGrid", viewModel);
问题是newList是IEnumerable它必须是一个集合,我不知道如何转换它,或者如果我采用正确的方法。
您可以使用扩展方法.ToList()
.ToArray()
等。
var newList = viewModel
.Distinct()
.OrderByDescending(d => d.CreateDate)
.Take(10)
.ToList();
更新资料
如果要将IEnumerable<T>
转换为Collection<T>
,则可以使用Collection<T>
类的构造函数的重载,如下所示:
Collection<ProductViewModel> newList = new Collection<ProductViewModel>(viewModel
.Distinct()
.OrderByDescending(d => d.CreateDate)
.Take(10)
.ToList());
您可以尝试newList.toList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.