tengo una clase de ejemplo que contiene dos puntos de datos:clasificar una lista por una propiedad y luego por otro
public enum Sort { First, Second, Third, Fourth }
public class MyClass
{
public MyClass(Sort sort, string name) {
this.Sort = sort;
this.Name = name;
}
public Sort Sort { get; set; }
public string Name { get; set; }
}
Busco a clasificarlos en grupos por sus propiedades Sort
, y luego alfabéticamente esos grupos.
List<MyClass> list = new List<MyClass>() {
new MyClass(MyClass.Sort.Third, "B"),
new MyClass(MyClass.Sort.First, "D"),
new MyClass(MyClass.Sort.First, "A"),
new MyClass(MyClass.Sort.Fourth, "C"),
new MyClass(MyClass.Sort.First, "AB"),
new MyClass(MyClass.Sort.Second, "Z"),
};
La salida sería entonces: (mostrando Name
)
A
AB
D
Z
B
C
he sido capaz de hacer esto mediante el uso de un foreach
para separar los elementos en muchas matrices más pequeñas (agrupados por la enumeración valor) pero esto parece muy tedioso, y creo que debe haber alguna solución LINQ que yo no sepa.
Esta sintaxis no es válida. El 'select m' debe colocarse al final, luego será correcto. –
Gracias Ahmed, corregido. 3am falla – pdr