我有一个数字列表如下:
var mylist = new List<double> {1, 5, 8, 10, 12};
如何获取特定号码后的号码。我想要一个LINQ
表达式,例如8
接收并给我10
;
答案 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();