基于匿名类型的动态 SortBy
Dynamic SortBy over anonymous type
如何对 匿名类型 的列表执行 SortBy
操作?
我的意思是,考虑到 enumerable
是作为参数出现的 匿名类型 的 IEnumerable
。例如:
public IQueryable<object> MyMethod(IQueryable<object> enumerable)
{
return enumerable.SortBy("Name");
}
当然匿名类型有一个Name
属性
里面的SortBy
应该怎么实现?
您可以使用 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; }
}
Note : It would be better if you use Enum
for sortOrder
parameter
如何对 匿名类型 的列表执行 SortBy
操作?
我的意思是,考虑到 enumerable
是作为参数出现的 匿名类型 的 IEnumerable
。例如:
public IQueryable<object> MyMethod(IQueryable<object> enumerable)
{
return enumerable.SortBy("Name");
}
当然匿名类型有一个Name
属性
里面的SortBy
应该怎么实现?
您可以使用 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; }
}
Note : It would be better if you use
Enum
forsortOrder
parameter