我试图从一个数组中找到与一组整数最接近的整数,但如果有多个整数,我想随机选择一个。
var nearestScore = scoreArray.OrderBy(x => Math.Abs((long)x - realScore)).First();
除了使用 First()
之外,我不知道任何其他方法。
我也试过
var r = new random()
var nearestScore = scoreArray.OrderBy(x => Math.Abs((long)x - realScore)).ToArray();
return nearestScore[r.next(0, nearestScore.Length - 1)]
谢谢。
最佳答案
您可以为此使用 GroupBy()
。对于小型阵列来说,它有点笨重但很简单。
Random rnd = new Random();
var nearestScore = scoreArray
.Select(x => new { Num = x, Delta = Math.Abs((long)x - realScore)) })
.OrderBy(a => a.Delta)
.GroupBy(a => a.Delta)
.First()
.OrderBy(a => rnd.Next())
.Select(a => a.Num)
.First();
关于c# - 如何在 array.orderby C# 上获取随机顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59200285/