Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按条件降序排列_C#_Asp.net_Linq_Linq To Sql_Linq To Entities - Fatal编程技术网

C# 按条件降序排列

C# 按条件降序排列,c#,asp.net,linq,linq-to-sql,linq-to-entities,C#,Asp.net,Linq,Linq To Sql,Linq To Entities,我想写一个LINQ to Entity查询,它根据输入参数按升序或降序排序,有什么方法吗。 下面是我的代码。请建议 public List<Hosters_HostingProviderDetail> GetPendingApproval(SortOrder sortOrder) { List<Hosters_HostingProviderDetail> returnList = new List<Hosters_HostingPro

我想写一个LINQ to Entity查询,它根据输入参数按升序或降序排序,有什么方法吗。 下面是我的代码。请建议

    public List<Hosters_HostingProviderDetail> GetPendingApproval(SortOrder sortOrder)
    {
        List<Hosters_HostingProviderDetail> returnList = new List<Hosters_HostingProviderDetail>();
        int pendingStateId = Convert.ToInt32(State.Pending);
        //If the sort order is ascending
        if (sortOrder == SortOrder.ASC)
        {
            var hosters = from e in context.Hosters_HostingProviderDetail
                          where e.ActiveStatusID == pendingStateId
                          orderby e.HostingProviderName ascending
                          select e;
            returnList = hosters.ToList<Hosters_HostingProviderDetail>();
            return returnList;
        }
        else
        {
            var hosters = from e in context.Hosters_HostingProviderDetail
                          where e.StateID == pendingStateId
                          orderby e.HostingProviderName descending
                          select e;
            returnList = hosters.ToList<Hosters_HostingProviderDetail>();
            return returnList;
        }
    }
public List GetPendingApproval(排序器排序器排序器)
{
List returnList=新列表();
int pendingStateId=Convert.ToInt32(State.Pending);
//如果排序顺序是升序
if(sortOrder==sortOrder.ASC)
{
var hosters=来自context.hosters\u HostingProviderDetail中的e
其中e.ActiveStatusID==pendingStateId
orderby e.HostingProviderName升序
选择e;
returnList=hosters.ToList();
退货清单;
}
其他的
{
var hosters=来自context.hosters\u HostingProviderDetail中的e
其中e.StateID==pendingStateId
orderby e.HostingProviderName降序
选择e;
returnList=hosters.ToList();
退货清单;
}
}

我不认为可以将条件放入更大的查询中,但可以将其分离到另一个C#语句中,如下所示:

// Common code:
var hosters = from e in context.Hosters_HostingProviderDetail
              where e.ActiveStatusID == pendingStateId;

// The difference between ASC and DESC:
hosters = (sortOrder == SortOrder.ASC ? hosters.OrderBy(e => e.HostingProviderName) : hosters.OrderByDescending(e => e.HostingProviderName));

// More common code:
returnList = hosters.ToList<Hosters_HostingProviderDetail>();
//通用代码:
var hosters=来自context.hosters\u HostingProviderDetail中的e
其中e.ActiveStatusID==pendingStateId;
//ASC和DESC之间的区别:
hosters=(sortOrder==sortOrder.ASC?hosters.OrderBy(e=>e.HostingProviderName):hosters.OrderByDescending(e=>e.HostingProviderName));
//更常见的代码:
returnList=hosters.ToList();

您可以使用

var hosters = from e in context.Hosters_HostingProviderDetail
              where e.ActiveStatusID == pendingStateId
              select e;

if (sortOrder == SortOrder.ASC)
   hosters = hosters.OrderBy(e => e.HostingProviderName);
else
    hosters = hosters.OrderByDescending(e => e.HostingProviderName);

return hosters.ToList<Hosters_HostingProviderDetail>();
var hosters=来自context.hosters\u HostingProviderDetail中的e
其中e.ActiveStatusID==pendingStateId
选择e;
if(sortOrder==sortOrder.ASC)
hosters=hosters.OrderBy(e=>e.HostingProviderName);
其他的
hosters=hosters.OrderByDescending(e=>e.HostingProviderName);
返回hosters.ToList();