gpt4 book ai didi

c# - 订购我的 LINQ

转载 作者:行者123 更新时间:2023-11-30 20:03:36 27 4
gpt4 key购买 nike

我有这个公司列表(加入类别),我在其中通过自由文本输入进行搜索,通常按名称/字母顺序对结果进行排序。

但是,当返回的公司链接到某个类别时(这些更重要类别的 ID 在列表中),我想主要对这些类别的公司的结果进行排序,次要排序应按字母顺序排列.

如何添加此订单?

    List<int> importantCategories = new List<int>() { 14, 99, 4428 };

var companies = (from c in context.Companies
join ct in context.Categories on c.CategoryId equals ct.CategoryId
where ct.Active == true
&& c.Name.Contains(freeTextFilter)
orderby c.Name
--- if company is from category 14, 99, 4428
then the ordering should place those above the rest
select c);

我从查询中删除了几行,但在为什么我没有使用连接的类别表的问题之后添加了其中一行。

最佳答案

大概是这样的?

List<int> importantCategories = new List<int>() { 14, 99, 4428 };

var companies = (from c in context.Companies
join ct in context.Categories on c.CategoryId equals ct.CategoryId
where c.Name.Contains(freeTextFilter)
orderby importCategories.Contains(ct.CategoryID) ? 0 : 1, c.Name
select c);

或者如果您希望该类别也引起订单,那么您可以尝试这样做:

orderby importCategories.Contains(ct.CategoryID) ? ct.CategoryID : 4429, c.Name

4429 只是列表的最大值 + 1,可以动态计算。

正如所建议的那样,这也可以,但如果您想按类别 ID 订购则不行:

orderby !importCategories.Contains(ct.CategoryID) , c.Name

从不使用 ct 有什么原因吗?

关于c# - 订购我的 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14665863/

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