我正在使用 ProductViewModel 中的产品填充部分 View 。当模型回来时,我们有...
var viewModel = _productAgent.GetProductsByCatalog(catalogId);
viewModel 是 ProductViewModel 的集合
我正在使用 linq 将集合的大小限制为前 10 个产品 orderby 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 它需要是一个集合,我不知道如何转换它,或者我是否采取了正确的方法。
最佳答案
您可以使用扩展方法 .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());
关于c# - 如何使用 linq 将 IEnumerable 转换为 Collection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44595802/