LINQ - 跳过一段时间出现问题了吗?
- 论坛
- LINQ - 跳过一段时间出现问题了吗?
26 浏览
LINQ - 跳过一段时间出现问题了吗?
我对以下代码的结果感到有些惊讶,我只是想从一系列整数中删除所有的3:
var sequence = new [] { 1, 1, 2, 3 }; var result = sequence.SkipWhile(i => i == 3); // 噢不!返回 { 1, 1, 2, 3 }
为什么3没有被跳过呢?
我接下来的想法是,好吧,Except操作符会解决问题:
var sequence = new [] { 1, 1, 2, 3 }; var result = sequence.Except(i => i == 3); // 噢不!返回 { 1, 2 }
总结一下,
- Except除了移除3之外,还移除了非唯一的元素。烦人。
- SkipWhile即使最后一个元素符合条件,也不会跳过。烦人。
有人能解释一下为什么SkipWhile不会跳过最后一个元素吗?还有谁能建议我使用哪个LINQ操作符来从上述序列中删除“3”?