Мне кажется, я понимаю, что вы просите здесь.Вы хотите построить запрос LINQ из строковых аргументов
Хорошо.Мне нравится вызов.
IComparable GetPropValue( object src, string propName )
{
return (IComparable)src.GetType( ).GetProperty( propName ).GetValue( src, null );
}
IEnumerable<Premise> SortMyPremises(IEnumerable<Premise> premises, string propertyName, string ascendingOrDescending)
{
return ascendingOrDescending = "ascending"
? premises.OrderBy(p => GetPropValue(p, propertyName))
: premises.OrderByDescending(p => GetPropValue(p, propertyName));
}
Причина, по которой вы написали его, не работает, заключается в том, что выражение LINQ преобразуется в код во время компиляции, а передаваемая строка не обрабатывается до времени выполнения.