class Table
{
public String Model { get; set; }
public Int32 TheWidth { get; set; }
public Int32 TheHeight { get; set; }
} //class Table
private void Demo01()
{
List<Table> DemoList01 = new List<Table>
{
new Table { Model = "Model 1", TheHeight = 5, TheWidth = 3 },
new Table { Model = "Model 2", TheHeight = 7, TheWidth = 2 },
new Table { Model = "Model 3", TheHeight = 2, TheWidth = 2 },
new Table { Model = "Model 4", TheHeight = 9, TheWidth = 8 },
new Table { Model = "Model 5", TheHeight = 6, TheWidth = 9 },
};
//Before sorting by area:
DemoList01.ForEach( CurrentTable => Console.WriteLine( "Table: {0}. Height: {1}, Width: {2}, Area: {3}", CurrentTable.Model, CurrentTable.TheHeight, CurrentTable.TheWidth, CurrentTable.TheHeight * CurrentTable.TheWidth ) );
Console.WriteLine( "".PadRight( 100, '_' ) ); //Just a visual separator
//Sort:
DemoList01.Sort( ( Table1, Table2 ) => { return ( Table1.TheHeight * Table1.TheWidth ).CompareTo( Table2.TheHeight * Table2.TheWidth ); } );
//After sorting by area:
DemoList01.ForEach( CurrentTable => Console.WriteLine( "Table: {0}. Height: {1}, Width: {2}, Area: {3}", CurrentTable.Model, CurrentTable.TheHeight, CurrentTable.TheWidth, CurrentTable.TheHeight * CurrentTable.TheWidth ) );
} //private void Demo01()