gpt4 book ai didi

linq - 使用 LINQ 获取上一个和下一个元素

转载 作者:行者123 更新时间:2023-12-04 06:14:39 25 4
gpt4 key购买 nike

我的一位同事正在寻找诸如从给定值的列表中选取上一个和下一个值之类的东西。我在谷歌的帮助下写了一个小函数,它有效,但我想看看
1.这是否是一种有效的方法?
2. 在 LINQ 中还有其他方法可以做到这一点吗?

    private static List<double> GetHighLow(double value)
{
List<double> tenorList = new List<double> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 20, 30 };

double previous = tenorList.OrderByDescending(s => s).Where(s => s.CompareTo(value) < 0).FirstOrDefault();
double next = tenorList.OrderBy(s => s).Where(s => s.CompareTo(value) > 0).FirstOrDefault();

List<double> values = new List<double> { previous, next };
return values;
}

谢谢

最佳答案

订购只是为了找到一个项目会让我怀疑。
您可以通过这种方式在线性时间内完成:

double prev = double.MinValue;
double nx = double.MaxValue;
foreach (var item in tenorList) {
if (item < value && item > prev) { prev = item; }
if (item > value && item < nx) { nx = item; }
}

List<double> values = new List<double> { prev, nx };

关于linq - 使用 LINQ 获取上一个和下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7418383/

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