我在动态LINQ 的VS2008示例中找到了一个示例,它允许您使用类似sql的字符串(例如,OrderBy("Name, Age DESC"))用于排序.不幸的是,包含的方法仅适用于IQueryable<T>;.有没有办法获得此功能IEnumerable<T>?
如果我有一个产品类:
public class Product
{
public string Title { get; set; }
public string Make { get; set; }
public Decimal Price { get; set; } //(Edit) - Added non-string
}
Run Code Online (Sandbox Code Playgroud)
我在另一个类中有一个属性声明为:
Func<Product, object> SortBy { get; set; }
Run Code Online (Sandbox Code Playgroud)
我可以使用以下方法设置SortBy:
SortBy = p => p.Title;
Run Code Online (Sandbox Code Playgroud)
但是,如果我将SortBy的属性名称存储为字符串,我将如何使用反射进行相同的赋值
string sortField = "Title";
SortBy = /*Some reflection using sortField*/;
Run Code Online (Sandbox Code Playgroud)