gpt4 book ai didi

c# - Linq OrderBy 特定值不在分组内排序

转载 作者:行者123 更新时间:2023-11-30 16:56:03 24 4
gpt4 key购买 nike

所以标题可能没有意义......

我有一个产品 list

"Ind Apples", "Ind Bananas", "Ind Carrots", "Ind Dates", "Ind Eggplants", "Bulk Apples", "Bulk Bananas", "Bulk Carrots", "Bulk Dates", "Potatoes", "Oranges", "Melons"

我的 linq 查询如下:

  var query = db.products
.OrderBy(c => c.ProductName.StartsWith("Ind"))
.ThenBy(c => c.ProductName.StartsWith("Bulk"));

我希望我的列表首先显示所有以“Ind”开头的项目,然后是以“Bulk”开头的项目,然后是其他所有项目...

我得到的列表如下:

"Ind Bananas"
"Ind Eggplants"
"Ind Carrots"
"Ind Apples"
"Bulk Apples"
"Bulk Dates"
"Bulk Carrots"
"Bulk Bananas"
"Oranges"
"Melons"
"Potatoes"

所以它是按我的规范排序的……但在每个分组“Ind”、“Bulk”中它不是……有没有办法(除了浏览列表并手动指定我想要每个项目的位置) 在 linq 中实现此目标????

最佳答案

我会在外部分组中链接条件运算符,然后按字符串分组:

var query = db.products
.OrderBy(c => c.ProductName.StartsWith("Ind") ? 0 :
c.ProductName.StartsWith("Bulk") ? 1 : 2)
.ThenBy(c => c.ProductName);

var query = db.products
.OrderBy(c => c.ProductName.StartsWith("Ind") ? 0 : 1)
.ThenBy(c => c.ProductName.StartsWith("Bulk") ? 0 : 1)
.ThenBy(c => c.ProductName);

关于c# - Linq OrderBy 特定值不在分组内排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28550592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com