Я не уверен, что вижу преимущества в том, чтобы сделать это «динамичным», как вы говорите.
Как насчет следующего, который использует дженерики и делегат Func - кажется немного экстремальным, и я понятия не имею, сработает ли это - я только что взял мой предыдущий запрос и создал метод, который передаств ключе вы хотите упорядочить список следующим образом:
public IEnumerable<TSource> OrderList<TSource, TKey>(
IEnumerable<TSource> list,
Func<TSource, TKey> sortFunction)
{
return from element in list
orderby sortFunction
select element;
}
Тогда вы бы назвали его так:
OrderList<Person, string>(people, (x)=>(x.Employee.CompanyName));
Я не вижу преимущества использования этого по сравнению с Linqзапрос, хотя.