我使用ProductViewModel中的产品填充部分视图。当模型回来时我们有......
var viewModel = _productAgent.GetProductsByCatalog(catalogId);
viewModel是ProductViewModel的集合
我正在使用linq将集合的大小限制为前10个产品,因为createDate desc就像这样......
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它需要是一个集合,我不知道如何转换它或者如果我采取正确的方法。
答案 0 :(得分:10)
您可以使用扩展程序.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());
答案 1 :(得分:-3)
您可以尝试newList.toList();