如何在LINQ中使用多个订单?

Ram*_*ngh 2 linq asp.net sorting

我想在我的查询中使用多个order,我使用LINQ.i是LINQ的新手,我已经尝试了stackoverflow上给出的示例.但我不知道为什么这些不适合我,我相信我错了.以下是我的情况.我有一个使用LINQ创建的项目.我没有设置列顺序的任务.实际上我的任务是什么,现在有一个列创建日期.现在我想使用Createddate以及sortOrder列进行排序.Below是用于它的代码:页面加载方法中的代码

ViewState["SortDirection"] = "desc";
ViewState["SortColumn"] = "createddate";
BindAllTopics(ViewState["SortDirection"].ToString(), ViewState["SortColumn"].ToString());
Run Code Online (Sandbox Code Playgroud)

我的BindAllTopic方法如下:

 protected void BindAllTopics(string SortType, string SortColumn)
{
    var LstTopics = (from topic in Dbobj.T_topic select topic).ToList();
    if (LstTopics.Count() > 0)
    {
        if (SortType == "ASC")
        {
            LstTopics = LstTopics.OrderBy(q => q.Name).ToList();
        }
        else
        {
            LstTopics = LstTopics.OrderByDescending(q => q.Name).ThenBy(q => q.SortOrder).ToList();
        }
        GrdTopics.DataSource = LstTopics.ToList();
        GrdTopics.PageSize = 25;
        GrdTopics.DataBind();

    }
    else
    {
        GrdTopics.DataSource = null;
        GrdTopics.DataBind();
        lblMsg.DisplayMessage(StatusMessages.InfoMessage, "No Topics Found.");
    }
}
Run Code Online (Sandbox Code Playgroud)

我想先按排序顺序排序,它是int类型,然后是Createddate.

请帮我..

par*_*agy 8

你可以在追踪中再添加一个ThenBy()

LstTopics.OrderByDescending(q => q.Name).ThenBy(q => q.SortOrder).ThenBy(m=>m.date)
Run Code Online (Sandbox Code Playgroud)