Poniendo algunas de las piezas mencionadas aquí juntas. Esto compila y funciona en C# 4.xy VS2010. Probé con un WinForm
. Añada el método al WinForm
Main()
. Necesitará al menos los ensamblajes System.Linq
y System.Generic.Collection
s.
private void SortCars()
{
List<CarSpecs> cars = new List<CarSpecs>();
List<CarSpecs> carsSorted = new List<CarSpecs>();
cars.Add(new CarSpecs
{
CarName = "Y50",
CarMaker = "Ford",
CreationDate = new DateTime(2011, 4, 1),
});
cars.Add(new CarSpecs
{
CarName = "X25",
CarMaker = "Volvo",
CreationDate = new DateTime(2012, 3, 1),
});
cars.Add(new CarSpecs
{
CarName = "Z75",
CarMaker = "Datsun",
CreationDate = new DateTime(2010, 5, 1),
});
//More Comprehensive if needed
//cars.OrderBy(x => x.CreationDate).ThenBy(x => x.CarMaker).ThenBy(x => x.CarName);
carsSorted.AddRange(cars.OrderBy(x => x.CreationDate));
foreach (CarSpecs caritm in carsSorted)
{
MessageBox.Show("Name: " +caritm.CarName
+ "\r\nMaker: " +caritm.CarMaker
+ "\r\nCreationDate: " +caritm.CreationDate);
}
}
}
public class CarSpecs
{
public string CarName { get; set; }
public string CarMaker { get; set; }
public DateTime CreationDate { get; set; }
}
(fuera del tema) Autoproperties anyone? –
@Peter Lillevold - ese fue mi PRIMER PENSAMIENTO también. No he escrito una propiedad "normal" (respaldada por una variable local que escribí) en mucho tiempo. (Solo para que mike sepa: "DateTime CreationDate {get; set;}" público es legal en C# 3.0) – Pwninstein
Hm, presiono Alt-Enter en el editor para que ReSharper se convierta en propiedad automática ... pero no pasó nada. ohwell, ¿se considera grosero editar ejemplos de código como este? aunque es un poco arriesgado en este caso, ya que no estamos seguros de si @Mike está usando C# 3.0 o no .. –