如何对匿名类型列表执行SortBy
操作?
我的意思是,考虑enumerable
是匿名类型的IEnumerable
作为参数。例如:
public IQueryable<object> MyMethod(IQueryable<object> enumerable)
{
return enumerable.SortBy("Name");
}
当然,匿名类型具有Name
属性
如何实施SortBy
内部?
非常感谢!
答案 0 :(得分:3)
您可以使用System.Linq.Dynamic
;
public static class LinqExtensions
{
public static IQueryable<T> OrderByName<T>(this IQueryable<T> queryable, string sortOrder = null)
{
if (string.IsNullOrEmpty(sortOrder))
{
sortOrder = "ASC";
}
return queryable.OrderBy(string.Format("Name {0}", sortOrder));
}
}
<强>用法强>
var query = yourContext.Products.OrderByName("DESC");
var productList = query.ToList();
public class Product
{
public int Id { get;set; }
public string Name { get; set; }
}
注意:如果您将
,那会更好Enum
用于sortOrder
参数