简体   繁体   中英

Linq to SQL - How to sort results from query

I have a LINQ query I am retrieving, although in its context how would I sort the output, I have tried sortby etc. but to no avail

    DataClasses1DataContext db = new DataClasses1DataContext();
    var returnall = from p in db.Orders
                    select p.ShipName;
var returnall = from p in db.Orders
                orderby p.ShipName
                select p.ShipName;

A handy reference for various LINQ functions can be found on the MSDN samples page .

you can use OrderBy to order the single property for multiple property use ThenBy also

 DataClasses1DataContext db = new DataClasses1DataContext();
 var returnall = db.OrderBy(r=> r.OrderDelivaryDate).
                    ThenBy(r => r. OrderName);

This query will sort first by OrderDelivaryDate then by OrderName

Here is some simple linq queries http://msdn.microsoft.com/en-us/vcsharp/aa336756#thenBySimple

var ret = db.Orders.OrderBy( x => x.ShipName );

To sort results from query on one or more fields:

Data:

        List<Employee> emp = new List<Employee>() { new Employee() { emp_id = 101, emp_name = "David", emp_lang = "Java", dpt_id = 1 }
                                                    ,new Employee() { emp_id = 102, emp_name = "Lana",emp_lang = "C#", dpt_id = 2 }
                                                    ,new Employee() { emp_id = 103, emp_name = "Sona",emp_lang = "Java", dpt_id = 3 }
                                                    ,new Employee() { emp_id = 104, emp_name = "Mike",emp_lang = "C++", dpt_id = 3 }
                                                    ,new Employee() { emp_id = 105, emp_name = "Roma",emp_lang = "C#", dpt_id = 1 }

Query:

    var res = from e in emp
              orderby e.emp_lang, e.dpt_id
              select new { e.emp_name, e.emp_lang, e.dpt_id }

Result :

{ emp_name = "Roma", emp_lang = "C#", dpt_id = 1 }
{ emp_name = "Lana", emp_lang = "C#", dpt_id = 2 }
{ emp_name = "Mike", emp_lang = "C++", dpt_id = 3 }
{ emp_name = "David", emp_lang = "Java", dpt_id = 1 }
{ emp_name = "Sona", emp_lang = "Java", dpt_id = 3 }

    

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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