相关疑难解决方法(0)

如何使用 System.Dynamic.Linq 对不区分大小写进行排序?

我使用 System.Linq.Dynamic 订购项目列表。

items = items.AsQueryable().OrderBy("Name ASC");
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,小写名称在大写名称之后排序,因此返回的项目是这样的。

Ape
Cat
Dog
alligator
ant
beetle
Run Code Online (Sandbox Code Playgroud)

我期望这个顺序:

alligator
ant
Ape
beetle
Cat
Dog
Run Code Online (Sandbox Code Playgroud)

有没有办法得到正确的顺序?检查了 OrderBy 的所有方法签名并用谷歌搜索,但 nada。

c# linq

7
推荐指数
2
解决办法
5371
查看次数

Linq To Sql - 动态OrderBy - 案例何时

我正在使用Linq来实现sqlLinq动态 OrderBy.

我知道linq dynamic可以像 - orderby("column_name")那样进行简单的排序.

它是否支持更复杂的东西,比如"CASE WHEN"中的查询?

string orderbyQuery = "(CASE WHEN (username == 100) THEN 1 ELSE 0 END) DESC)";
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

var u = from u in db.users
        orderby(orderbyQuery)
        select u;
Run Code Online (Sandbox Code Playgroud)

上面的例子不起作用!,任何想法,如果它可能吗?还有其他办法吗?

谢谢

linq dynamic sql-order-by linq-to-sql

6
推荐指数
1
解决办法
1万
查看次数

将一些项目放在List <T>中

我只是想知道将某些项目放在列表顶部的列表中的最佳方法.此模型用于显示搜索结果的视图,并作为一个来自控制器List<T>.所以我的目标是显示所有项目,但具有特定属性的项目将转到列表的开头,以便首先显示它们.

所以我的控制器将是这样的:

List<Item> listFromRepository = repository.GetSearchResults();
List<Item> topItems = listFromRepository
                            .Where(x => x.Subject == 5)  // any filter for items to be at top of search results
List<Item> listForView = new List<Item>();
listForView.AddRange(topItems);
listForView.AddRange(listFromRepository.Exclude(x => x.Subject == 5));
return Json(listForView);
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net-mvc entity-framework

0
推荐指数
1
解决办法
96
查看次数