2010-07-19 20 views
13

ho una classe:Come ordinare un elenco in C#

public class MyObject 
{ 
public string Name; 
public int Age; 
} 

Ho una lista di oggetti myObject:

Name Age 
ABC 12 
BBC 14 
ABC 11 

Come ordinare questa lista con condizione: Tri Nome prima & sorta Eta dopo. Con questa lista, il risultato dopo la cernita:

modi
Name Age 
ABC 11 
ABC 12 
BBC 14 
+0

ho un'altra domanda a qui: http://stackoverflow.com/questions/3279248/help-me-to-combine-sorting-filtering-on-a-list –

risposta

10
class Program 
{ 
    static void Main(string[] args) 
    { 
     var list = new List<MyObject>(new[] 
     { 
      new MyObject { Name = "ABC", Age = 12 }, 
      new MyObject { Name = "BBC", Age = 14 }, 
      new MyObject { Name = "ABC", Age = 11 }, 
     }); 
     var sortedList = from element in list 
         orderby element.Name 
         orderby element.Age 
         select element; 

     foreach (var item in sortedList) 
     { 
      Console.WriteLine("{0} {1}", item.Name, item.Age); 
     } 
    } 
} 
14

Due diversi utilizzando LINQ:

1) Utilizzando OrderBy e ThenBy:

l = l.OrderBy(x => x.Name).ThenBy(x => x.Age).ToList(); 

2) Utilizzando la sintassi di query:

l = (from x in l 
    orderby x.Name, x.Age 
    select x).ToList(); 
1

È possibile effettuare le seguenti operazioni utilizzando LINQ:

class Program 
{ 
    static void Main(string[] args) 
    { 
     List<MyObject> list = new List<MyObject>(); 

     list.Add(new MyObject() { Age = 12, Name = "ABC" }); 
     list.Add(new MyObject() { Age = 11, Name = "ABC" }); 
     list.Add(new MyObject() { Age = 14, Name = "BBC" }); 

     var sorted = list.OrderBy(mo => mo.Name).ThenBy(mo => mo.Age); 

     foreach (var myObject in sorted) 
     { 
      Console.WriteLine(string.Format("{0} - {1}", 
           myObject.Name, myObject.Age)); 
     } 
    } 
} 
0

è possibile passare un nuovo oggetto ORDER BY in modo che ordini da che

class Program 
{ 
    static void Main(string[] args) 
    { 
     var list = new List<MyObject>(new[] 
     { 
      new MyObject { Name = "ABC", Age = 12 }, 
      new MyObject { Name = "BBC", Age = 14 }, 
      new MyObject { Name = "ABC", Age = 11 }, 
     }); 
     var sortedList = list.OrderBy(x => new { x.Name , x.Age }); 

     foreach (var item in sortedList) 
     { 
      Console.WriteLine("{0} {1}", item.Name, item.Age); 
     } 
    } 
} 
Problemi correlati