繁体   English   中英

IEnumerable的排序 <T> 在MVC 2中

[英]Sorting of IEnumerable<T> in MVC 2

我的服务层将IEnumerable<ResortsView>返回给我的Controller,我必须提供一个选项,按照以下标准在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; }
}

IEnumerable<ResortsView>处理结果排序的最佳方法是什么?

使用LINQ堆栈的OrderBy方法:

IEnumerable<ResortsView> source = GetResorts();
var model = source.OrderBy(rv => rv.CheckInTime);

要按ResortProducts最低的非零价格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));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM