如何解决在MVC 2中对IEnumerable <T>进行排序
| 我的服务层向我的控制器返回了“ 0”,我必须提供以下选项以按以下标准在UI上对结果进行排序:价格(不包括零价格项目),供应商名称和评分。这是我的对象/类的代码片段:[Serializable]
public class ResortsView : SupplierView
{
public IList<ProductView> ResortProducts { get; set; }
public string CheckInTime { get; set; }
public string CheckOutTime { get; set; }
public virtual IList<ImageView> Images { get; set; }
}
[Serializable]
public class SupplierView
{
public string SupplierID { get; set; }
public string SupplierName { get; set; }
public string Description { get; set; }
public string Rating { get; set; }
public string URL { get; set; }
}
[Serializable]
public class ProductView
{
public string Code { get; set; }
public string Description { get; set; }
public decimal? Price { get; set; }
public ErrorView PricingError { get; set; }
}
处理ѭ0内的结果的最佳方法是什么?
解决方法
使用LINQ堆栈的
OrderBy
方法:
IEnumerable<ResortsView> source = GetResorts();
var model = source.OrderBy(rv => rv.CheckInTime);
要按ResortProducts
中的最低非零价格订购:
var model = source.OrderBy(rv => rv.ResortProducts.Where(p => p.Price > 0).Min(p => p.Price));
,如果您想使用Dynamic LINQ库,最有可能的是以下一些说明和下载链接。
您需要让您的操作接受一些排序参数:
public ActionResult MyAction(string sortField)
{
return View(myService.MyData().OrderBy(sortField));
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。