编程语言
首页 > 编程语言> > c#-在MVC 2中对IEnumerable进行排序

c#-在MVC 2中对IEnumerable进行排序

作者:互联网

我的服务层返回IEnumerable< ResortsView>.到我的控制器,我必须提供一个选项,以根据以下条件对UI上的结果进行排序:价格(不包括零价格项目),SupplierName&评分.这是我的对象/类的代码片段:

[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中的最低非零价格订购:

var model = source.OrderBy(rv => rv.ResortProducts.Where(p => p.Price > 0).Min(p => p.Price));

标签:asp-net-mvc-2,c
来源: https://codeday.me/bug/20191208/2092112.html