gpt4 book ai didi

c# - Linq OrderBy 逻辑

转载 作者:太空狗 更新时间:2023-10-30 00:11:14 25 4
gpt4 key购买 nike

我试图了解以下 LINQ 查询的自定义排序逻辑:

 var random = new Random();
var cnt = Enumerable.Range(0, 10).OrderBy(i => random.NextDouble()).ToList();

这种比较的内在逻辑是什么?我如何在内部与 random.NextDouble() 进行比较,使结果列表始终不同?

最佳答案

相当于:

var cnt =
Enumerable.Range(0, 10)
.Select(i => new { i, rand = random.NextDouble() }) //"weave" the random temporary
.OrderBy(x => x.rand) //sort
.Select(x => x.i) //remove it
.ToList();

随机值在逻辑上成为列表的一部分。

作为一个实现细节(从 .NET 2.0 到 4.5),OrderBy 实现了排序键,以便为每个元素准确计算一个排序键。它这样做是为了性能和(在您的情况下)为了正确性。

关于c# - Linq OrderBy 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14478262/

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