作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我可以使用 orderby 语句动态构造 Linq 查询,如下所示:
var Query = from q in Db.TblUsers select q;
switch (Order)
{
case "Name": Query = from q in Query orderby q.Name select q; break;
case "DOB": Query = from q in Query orderby q.DOB select q; break;
// ... and more cases
}
var Result = Query.ToList();
但是,如果需要降序排列(取决于用户在 UI 中的选择),我将不得不构造另一个 switch 语句来复制所有情况,只是在 orderby 之后添加“降序”关键字。
例子:
if (ascending)
{
switch (Order)
{
case "Name": Query = from q in Query orderby q.Name select q; break;
// ....
}
}
else
{
switch (Order)
{
case "Name": Query = from q in Query orderby q.Name descending select q; break;
// ....
}
}
有没有办法让我动态地向查询添加降序关键字?
最佳答案
给定:
public static class OrderByEx
{
public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, bool ascending)
{
if (ascending)
{
return source.OrderBy(keySelector);
}
return source.OrderByDescending(keySelector);
}
}
您可以:
var Query = Db.TblUsers.AsQueryable();
switch (Order)
{
case "Name":
Query = Query.OrderBy(q=>q.Name, ascending);
break;
case "DOB":
Query = Query.OrderBy(q=>q.DOB, ascending);
break;
// ... and more cases
}
关于c# - 如何动态添加降序到orderby?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30961757/
序 大家好呀,我是summo,这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛,2核2G的云服务器一年只要99块钱,懂行的人应该知道这个价格在业界已经是非常良心了
我尝试根据给定的级别顺序(BFS 顺序)构造 BST。我知道这是可能的,但我不知道我该怎么写。问题是我必须使用 BFS 序列。所以,我不能在这里使用递归,我必须迭代地编写我的程序......我发现这有
我是一名优秀的程序员,十分优秀!