LINQ获取序列值

时间:2018-12-06 12:18:50

标签: c# linq generic-collections

下面的列表提供了整数的集合。我的要求是要返回序列值,例如前1,2,3,4,5。一旦序列小于或等于1.,将停止提取。我可以使用for循环来执行此操作,但是我需要使用LINQ Extension方法来执行此操作。谢谢

如果我通过1,那么结果应该像1,2,3,4,5

如果我通过2,那么结果应该像2,3,4,5

如果我通过3,那么结果应该像3,4,5

List<int> list=new List<int>();
list.Add(1);---------
list.Add(2);---------
list.Add(3);---------
list.Add(4);---------
list.Add(5);---------
list.Add(1);
list.Add(2);
list.Add(3);

2 个答案:

答案 0 :(得分:3)

var result = list.TakeWhile((item, index) => item > list[0] || index == 0);

答案 1 :(得分:0)

您可以简单地使用循环:

List<int> list2 = new List<int>()
for(int i=0;i<list.Count;i++)
    if(i==0 || list[i]>list2[i-1])
        list2.Add(list[i]);