LINQ , Expression, Enumerable.OrderBy Func:
var list = new List<SampleClass> ();
Func<SampleClass, PropertyType1) orderSelector1 = (obj => obj.Property1);
var sequence1 = list.OrderBy (orderSelector1);
Func<SampleClass, PropertyType2) orderSelector1 = (obj => obj.Property2);
var sequence2 = list.OrderBy (orderSelector2);
If you want to assign multiple times, you can do Funcreturn object:
var list = new List<SampleClass> ();
Func<SampleClass, object> orderSelector;
orderSelector = (obj => obj.Property1);
var sequence1 = list.OrderBy (orderSelector);
orderSelector = (obj => obj.Property2);
var sequence2 = list.OrderBy (orderSelector);
If you really need a dynamic property selection , i.e. a call OrderBywith the property given string, you will need Expressions. There are many examples in this thread that allow you to do something like:
var list = new List<SampleClass> ();
var sequence1 = list.OrderBy ("Property1");
var sequence2 = list.OrderBy ("Property2");
source
share