Comment trier une liste par propriété dans l'objet en C#

Minahil Noor 16 février 2024
  1. Utilisez la méthode OrderBy pour trier une liste par propriété dans l’objet en C#
  2. Utiliser un délégué pour trier une liste par une propriété dans l’objet en C#
Comment trier une liste par propriété dans l'objet en C#

Cet article présente différentes méthodes pour trier une liste par propriété dans l’objet en utilisant le code C#.

  • Utilisation de la méthode OrderBy
  • Utiliser un delegate

Utilisez la méthode OrderBy pour trier une liste par propriété dans l’objet en C#

Nous utiliserons la fonction intégrée OrderBy pour trier une liste par propriété dans l’objet. C’est la méthode de LINQ. Cette méthode crée une nouvelle liste triée par la propriété donnée. La syntaxe correcte pour utiliser cette méthode de tri d’une liste par une propriété est la suivante.

ListName.Orderby(varName => varName.property);

La fonction intégrée OrderBy a deux paramètres. Les détails de ses paramètres sont les suivants.

Paramètres Description
varName obligatoire C’est le nom de la variable pour la liste donnée.
property obligatoire C’est la propriété que nous utiliserons pour trier notre liste.

Le programme ci-dessous montre comment nous pouvons utiliser cette fonction pour trier une liste selon une propriété de l’objet.

using System;
using System.Linq;
using System.Collections.Generic;

public class Flowers {
  public string name;
  public int priority;

  public Flowers(string name, int priority) {
    this.name = name;
    this.priority = priority;
  }

  public override string ToString() {
    return "[" + name + "," + priority + "]";
  }
}

public class Example {
  public static void Main() {
    Flowers hibiscus = new Flowers("Hibiscus", 3);
    Flowers rose = new Flowers("Rose", 1);
    Flowers lili = new Flowers("Lili", 4);

    List<Flowers> mylist = new List<Flowers>() { hibiscus, rose, lili };

    List<Flowers> sorted = mylist.OrderBy(x => x.priority).ToList();
    Console.WriteLine(String.Join(Environment.NewLine, sorted));
  }
}

Production:

[Rose, 1]
[Hibiscus, 3]
[Lili, 4]

Utiliser un délégué pour trier une liste par une propriété dans l’objet en C#

Nous pouvons également utiliser le délégué à la douane pour trier une liste par propriété dans l’objet. La syntaxe correcte pour utiliser un delegate est la suivante.

[access modifier]
delegate[return type][delegate name]([parameters])

Le programme ci-dessous montre comment nous pouvons utiliser un délégué pour trier une liste par une propriété de l’objet.

using System;
using System.Linq;
using System.Collections.Generic;

public class Flowers {
  public string name;
  public int priority;

  public Flowers(string name, int priority) {
    this.name = name;
    this.priority = priority;
  }

  public override string ToString() {
    return "[" + name + "," + priority + "]";
  }
}

public class Example {
  public static void Main() {
    Flowers hibiscus = new Flowers("Hibiscus", 3);
    Flowers rose = new Flowers("Rose", 1);
    Flowers lili = new Flowers("Lili", 4);

    List<Flowers> mylist = new List<Flowers>() { hibiscus, rose, lili };

    mylist.Sort(delegate(Flowers x, Flowers y) { return x.priority.CompareTo(y.priority); });

    Console.WriteLine(String.Join(Environment.NewLine, mylist));
  }
}

Production:

[Rose, 1]
[Hibiscus, 3]
[Lili, 4]

Article connexe - Csharp Method

Article connexe - Csharp Parameter