// creates duplicate list in ascending order List<WindRosePlotDataRecord> SortedList = _Rows.OrderByDescending(o => o.Parameter).ToList(); // creates duplicate list in descending order List<WindRosePlotDataRecord> SortedList = _Rows.OrderByDescending(o => o.Parameter).ToList(); // sort-in-place in ascending order _Rows.Sort((x, y) => x.Parameter.CompareTo(y.Parameter)); // sort-in-place in descending order _Rows.Sort((x, y) => y.Parameter.CompareTo(x.Parameter)); // we switched x and y in CompareTo