我有一个数字列表如下:
var mylist = new List<double> {1, 5, 8, 10, 12};
如何获取一个特定数之后的数字。我想要一个 LINQ
表达式,比如输入 8
,输出 10
。
double result = mylist.SkipWhile(n => n != 8).Skip(1).First();
Math.Abs(n - 8) > 0.00001
。 - Ilya IvanovFirstOrDefault()
将返回 0
,这也是不正确的。 - Ulugbek Umirov如果没有重复的数字,这个方法同样适用。
int index = mylist.IndexOf(8);
if (index != -1)
{
double result = index == mylist.Count - 1 ? mylist[index] : mylist[index + 1];
}
这应该 工作,
var mylist = new List<double> { 1, 5, 8, 10, 12 };
double p = 8;
var result = mylist.Where(x => x > p).Take(1).SingleOrDefault();