using System; using System.Linq; using System.Linq.Expressions; namespace APT.Infrastructure.Core { /// /// Linq架构里对集合排序实现 /// /// public class Orderable : IOrderable { private IQueryable _queryable; /// /// 排序后的结果集 /// /// public Orderable(IQueryable enumerable) { _queryable = enumerable; } /// /// 排序之后的结果集 /// public IQueryable Queryable { get { return _queryable; } } /// /// 递增 /// /// /// /// public IOrderable Asc(Expression> keySelector) { _queryable = (_queryable as IOrderedQueryable) .OrderBy(keySelector); return this; } /// /// 然后递增 /// /// /// /// public IOrderable ThenAsc(Expression> keySelector) { _queryable = (_queryable as IOrderedQueryable) .ThenBy(keySelector); return this; } /// /// 递减 /// /// /// /// public IOrderable Desc(Expression> keySelector) { _queryable = _queryable .OrderByDescending(keySelector); return this; } /// /// 然后递减 /// /// /// /// public IOrderable ThenDesc(Expression> keySelector) { _queryable = (_queryable as IOrderedQueryable) .ThenByDescending(keySelector); return this; } } }