LINQ - is SkipWhile broken?

前端 未结 5 622
醉话见心
醉话见心 2020-12-30 22:54

I\'m a bit surprised to find the results of the following code, where I simply want to remove all 3s from a sequence of ints:

var sequence = new [] { 1, 1, 2         


        
5条回答
  •  天涯浪人
    2020-12-30 23:19

    It's not broken. SkipWhile will only skip items in the beginning of the IEnumerable. Once that condition isn't met it will happily take the rest of the elements. Other elements that later match it down the road won't be skipped.

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

提交回复
热议问题