Como ordenar uma lista por uma propriedade no objeto em C#
-
Utilize o método
OrderBy
para ordenar uma lista por uma propriedade no objeto emC#
-
Use um Delegado para ordenar uma lista por um bem no objeto em
C#
Este artigo introduzirá diferentes métodos para ordenar uma lista por um bem no objeto usando o código C#.
- Usando o método
OrderBy
- Usando o delegado
Utilize o método OrderBy
para ordenar uma lista por uma propriedade no objeto em C#
Utilizaremos a função embutida OrderBy
para ordenar uma lista por um imóvel no objeto. É o método do LINQ. Este método cria uma nova lista ordenada pelo bem em questão. A sintaxe correta para utilizar este método para ordenar uma lista por um bem é a seguinte.
ListName.Orderby(varName => varName.property);
A função embutida OrderBy
tem dois parâmetros. Os detalhes de seus parâmetros são os seguintes.
Parâmetros | Descrição | |
---|---|---|
varName |
obrigatório | É o nome da variável para a lista fornecida. |
property |
obrigatório | É a propriedade que utilizaremos para ordenar nossa lista. |
O programa abaixo mostra como podemos usar esta função para ordenar uma lista por um bem no objeto.
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));
}
}
Resultado:
[Rose, 1]
[Hibiscus, 3]
[Lili, 4]
Use um Delegado para ordenar uma lista por um bem no objeto em C#
Também podemos usar o delegado personalizado para ordenar uma lista por um imóvel no objeto. A sintaxe correta para utilizar um delegate
é a seguinte.
[access modifier]
delegate[return type][delegate name]([parameters])
O programa abaixo mostra como podemos utilizar um delegado para ordenar uma lista por um bem no objeto.
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));
}
}
Resultado:
[Rose, 1]
[Hibiscus, 3]
[Lili, 4]
Artigo relacionado - Csharp Method
- Parâmetro opcional em C#
- Como passar um método como um parâmetro na função C
- C# Passar Múltiplos Parâmetros para um Método Get