8,497
社区成员
发帖
与我相关
我的任务
分享
//根据条件分页显示返回泛型集合
public List<Entity.Income> GetList(int startIndex, int pageSize, Expression<Func<Entity.Income, bool>> predicate,string sort,string sortDirection)
{
try
{
if (predicate == null)
{
return dct.Income.OrderByDescending(b => b.Id).Skip(startIndex - 1).Take(pageSize).ToList();
}
else
{
return dct.Income.Where(predicate)
.OrderByDescending(b=>b.id).Skip(startIndex - 1).Take(pageSize).ToList();
}
}
catch (Exception e)
{
throw e;
}
public static IQueryable<T> OrderBy<T>(this IQueryable<T> source, string ordering, params object[] values)
{
return (IQueryable<T>)OrderBy((IQueryable)source, ordering, values);
}
public static IQueryable OrderBy(this IQueryable source, string ordering, params object[] values)
{
if (source == null) throw new ArgumentNullException("source");
if (ordering == null) throw new ArgumentNullException("ordering");
ParameterExpression[] parameters = new ParameterExpression[] {
Expression.Parameter(source.ElementType, "") };
ExpressionParser parser = new ExpressionParser(parameters, ordering, values);
IEnumerable<DynamicOrdering> orderings = parser.ParseOrdering();
Expression queryExpr = source.Expression;
string methodAsc = "OrderBy";
string methodDesc = "OrderByDescending";
foreach (DynamicOrdering o in orderings)
{
queryExpr = Expression.Call(
typeof(Queryable), o.Ascending ? methodAsc : methodDesc,
new Type[] { source.ElementType, o.Selector.Type },
queryExpr, Expression.Quote(Expression.Lambda(o.Selector, parameters)));
methodAsc = "ThenBy";
methodDesc = "ThenByDescending";
}
return source.Provider.CreateQuery(queryExpr);
}
NorthwindDataContext northwind = new NorthwindDataContext();
var query = from p in northwind.Products
where p.CategoryID == 3 && p.UnitPrice > 3
orderby p.SupplierID
select p;
NorthwindDataContext northwind = new NorthwindDataContext();
var query = northwind.Products
.Where("CategoryID = 3 AND UnitPrice > 3")
.OrderBy("SupplierID Asc");
interface IComparer<T> {
// Tx < Ty 返回一个负数; Tx == Ty 返回零; Tx > Ty 返回一个大于零的整数
int Compare(T x, T y);
}
// 可以是任何类型
public class MyComparer : IComparer<string>
{
public int Compare(string s1,
string s2)
{
}
// 调用:
MyComparer myComparer = new MyComparer();
IEnumerable<String> items = objects.OrderByDescending((s => s), myComparer);
public static IOrderedEnumerable<T> OrderBy<T, K>(
this IEnumerable<T> source,
Func<T, K> keySelector,
IComparer<K> comparer);
public static IOrderedEnumerable<T> OrderByDescending<T, K>(
this IEnumerable<T> source,
Func<T, K> keySelector,
IComparer<K> comparer);