使用LINQ获取数字列表中的下一个数字

时间:2014-05-31 20:29:35

标签: c# linq list

我有一个数字列表如下:

var mylist = new List<double> {1, 5, 8, 10, 12};

如何获取特定号码后的号码。我想要一个LINQ表达式,例如8接收并给我10;

3 个答案:

答案 0 :(得分:7)

您可以使用以下内容:

double result = mylist.SkipWhile(n => n != 8).Skip(1).First();

答案 1 :(得分:2)

如果您没有重复的数字,这也应该有效。

int index = mylist.IndexOf(8);

if (index != -1)
{
   double result = index == mylist.Count - 1 ? mylist[index] : mylist[index + 1];
}

答案 2 :(得分:0)

这应该是work

var mylist = new List<double> { 1, 5, 8, 10, 12 };
double p = 8;

var result = mylist.Where(x => x > p).Take(1).SingleOrDefault();