如何从列表开头移除小于2的元素,遇≥2元素即停止?求LINQ方法
使用LINQ实现需求的方案
你可以直接用LINQ的SkipWhile方法来实现这个需求,它完全匹配你的场景:跳过序列开头所有满足条件的元素,直到遇到第一个不满足条件的元素,之后的所有元素都会被保留。
代码示例
假设你的原始列表定义如下:
List<int> numbers = new List<int> { 0, 1, 1, 0, 10, 12, 13, 12, 12, 0, 1, 0, 1, 1 };
实现需求的LINQ代码:
var result = numbers.SkipWhile(n => n < 2).ToList();
逻辑说明
SkipWhile(n => n < 2)会从头遍历列表,只要元素小于2就跳过;当碰到第一个不满足n < 2的元素(也就是10)时,立即停止跳过操作,返回从该元素开始的所有后续元素——包括后面的0、1等符合保留要求的内容。- 调用
ToList()是将结果转换为列表类型,若不需要列表,直接保留IEnumerable<int>类型的结果即可。
最终得到的结果就是你期望的:10, 12, 13, 12, 12, 0, 1, 0, 1, 1
内容的提问来源于stack exchange,提问作者ChrisRoo
相关产品推荐
相关产品推荐

