sách gpt4 ăn đã đi

C# LINQ Orderby - 真/假如何影响 orderby?

In lại 作者:IT王子 更新时间:2023-10-29 04:15:21 29 4
mua khóa gpt4 giày nike

我正在研究一些 LINQ 排序,因为我有一个 ID 列表,我需要按顺序对它们进行排序。但是,某些 ID 需要优先于标准顺序。

鉴于此 C# 代码(可以粘贴到 .NET Fiddle 中进行测试),排序按我需要的方式工作,但我不明白为什么 contains 上的 not (!) 运算符是给我正确的顺序?

我预期的排序输出是 (5, 1, 2, 3, 4, 6, 7, 8, 9)。

如果我的排序中有一个 Chứa,它不应该为返回 true 的行提供排序优先权吗?相反,它似乎为返回 false 的行提供排序优先级。

sử dụng System.Linq;
sử dụng Hệ thống;

Chương trình lớp công cộng
{
public static void Main()
{
var numbersToFilterBy = new [] {5, 11, 20};

var x = new [] {new XClass(){Id = 1}, new XClass(){Id = 9}, new XClass(){Id = 5}, new XClass(){Id = 3}, new XClass(){Id = 4}, new XClass(){Id = 2}, new XClass(){Id = 6}, new XClass(){Id = 8}, new XClass(){Id = 7}};

var trueData = (from data in x
orderby !numbersToFilterBy.Contains(data.Id), data.Id
select data).ToList();

foreach(var item in trueData){
Console.WriteLine(item.Id);
}
}

public class XClass{
public int Id{get;set;}
}
}

发生这种情况的原因是什么?

câu trả lời hay nhất

Đặt hàngBy方法将默认按升序对项目进行排序。现在,假设 bool 值的数字表示是:

  • = 0
  • ĐÚNG VẬY = 1

SAI 值自然会排在第一位。如果您想反转顺序,只需使用 đang đi xuống 关键字:

var trueData = (from data in x
orderby numbersToFilterBy.Contains(data.Id) descending, data.Id
select data).ToList();

关于C# LINQ Orderby - 真/假如何影响 orderby?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39093937/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress