gpt4 book ai didi

c# - 为什么它给我相同的输出?

转载 作者:太空宇宙 更新时间:2023-11-03 17:15:08 26 4
gpt4 key购买 nike

首先运行下面的代码

var list = new List<int> {1, 5, 0, 65, 2, 1, 0, 10};

var ordered = list.OrderBy(i => ++i);

foreach (var i in ordered)
{
Console.WriteLine(i);
}

输出:001个1个2个5个1065

然后,

var list = new List<int> {1, 5, 0, 65, 2, 1, 0, 10};

var ordered = list.OrderBy(i => --i);

foreach (var i in ordered)
{
Console.WriteLine(i);
}

输出:和之前一样

我的问题是为什么会这样??

最佳答案

My question is why this happens??

您的第二种形式实际上与:

var ordered = list.OrderBy(i => i - 1);

...这不会改变顺序,除非您有 Int32.MinValue 的值。

您更改 lambda 表达式中的参数 的值这一事实是无关紧要的 - 该参数值之后会被有效地丢弃。它不会更改序列中的值。如果你想要输出 -1 -1 0 0 1 4 9 64 那么你应该使用:

var ordered = list.Select(i => i - 1).OrderBy(i => i);

关于c# - 为什么它给我相同的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16198447/

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