static void MyMain() { List<SubClassA> subClassAList = new List<SubClassA> { new SubClassA {SomeBoolValue = true, Value = 0}, new SubClassA {SomeBoolValue = true, Value = 2}, new SubClassA {SomeBoolValue = false, Value = 1}, }; List<SubClassB> subClassBList = new List<SubClassB> { new SubClassB {SomeDecimalValue = 1.3M, Value = 2}, new SubClassB {SomeDecimalValue = 3.5M, Value = 1}, new SubClassB {SomeDecimalValue = 0.2M, Value = 5}, }; IList<SubClassA> orderedAList = LinqUtil<SubClassA>.OrderList(subClassAList) .ToList(); IList<SubClassB> orderedBList = LinqUtil<SubClassB>.OrderList(subClassBList) .ToList(); }