2011-06-20 3 views
1
public class BatchProcess 
    { 
     public string process { get; set; } 
     public DateTime runtime { get; set; } 
     public bool running { get; set; } 
    } 

J'ai donc une liste de ces types - List<BatchProcess> list.Tri d'une liste en C#

Comment trier une base de chacune de ces colonnes? J'ai entendu dire que je peux le faire avec LINQ mais je suis tellement mauvais avec LINQ. Comment cela ressemblerait-il?

Merci.

Répondre

6

Vous pouvez trier par exécution, par exemple, via:

var orderedByRuntime = list.OrderBy(p => p.runtime); 

Si vous vouliez trier par « processus » dans l'ordre décroissant, vous pouvez utiliser:

var orderedByProcessDesc = list.OrderByDecending(p => p.process); 
2

Voici un exemple de en utilisant LINQ (syntaxe lambda) pour créer une liste triée par process.

var listByProcess = list.OrderBy(bp => bp.process); 
2

Utilisation OrderBy:

var sortedList = list.OrderBy(p => p.runtime).ToList(); 
0

Si vous voulez trier tous, car il semble que ce soit ce que vous vous demandez pouvez juste faire ce qui suit

var sorted = list.OrderBy(p => p.process).ThenBy(r => r.runtime);