gpt4 book ai didi

c# - 使用 LINQ 进行选择性排序、部分排序

转载 作者:太空狗 更新时间:2023-10-29 22:08:46 25 4
gpt4 key购买 nike

假设我有一个对象列表:

var items = new {
new { Order = 0 },
new { Order = 1 },
new { Order = -1 },
new { Order = 3 },
new { Order = 2 },
new { Order = -1 }
};

我需要订购它,以便带有 Order > -1 的商品位于按升序排列的列表顶部,其余项目为 Order == -1正在跟踪他们。

有没有比使用 Conact() 更优雅的方法呢?和 Where()子句:

var orderedItems = items.Where(x => x.Order > -1).OrderBy(x => x.Order)
.Conact(items.Where(x => x.Order == -1);

所以在排序后这个列表看起来像:

var items = new {
new { Order = 0 },
new { Order = 1 },
new { Order = 2 },
new { Order = 3 },
new { Order = -1 },
new { Order = -1 }
};

还有 items实际场景中的列表已经很复杂IQueryable<T>目的。这就是为什么我试图找到进行这种选择性排序的最佳方式。

最佳答案

您可以试试这个 - 它会产生您期望的结果:

items.OrderBy(x.Order => x.Order == -1).ThenBy(x.Order => x.Order);

关于c# - 使用 LINQ 进行选择性排序、部分排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2281900/

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