gpt4 book ai didi

c# - LINQ - SkipWhile 坏了吗?

转载 作者:IT王子 更新时间:2023-10-29 04:15:15 28 4
gpt4 key购买 nike

我有点惊讶地发现以下代码的结果,我只是想从一个整数序列中删除所有 3:

var sequence = new [] { 1, 1, 2, 3 };
var result = sequence.SkipWhile(i => i == 3); // Oh noes! Returns { 1, 1, 2, 3 }

为什么没有跳过 3?

我的下一个想法是,好吧,Except 运算符可以解决问题:

var sequence = new [] { 1, 1, 2, 3 };
var result = sequence.Except(i => i == 3); // Oh noes! Returns { 1, 2 }

总而言之,

  • 除了删除 3,还删除非不同的元素。呃。
  • SkipWhile 不会跳过最后一个元素,即使它匹配健康)状况。 Grr.

有人可以解释为什么 SkipWhile 不跳过最后一个元素吗?谁能建议我可以使用什么 LINQ 运算符从上面的序列中删除“3”?

最佳答案

它没有坏。 SkipWhile只会跳过 IEnumerable<T> 开头的项目.一旦不满足该条件,它将很乐意采用其余元素。以后匹配它的其他元素将不会被跳过。

int[] sequence = { 3, 3, 1, 1, 2, 3 };
var result = sequence.SkipWhile(i => i == 3);
// Result: 1, 1, 2, 3

关于c# - LINQ - SkipWhile 坏了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2527047/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com