TakeWhile,至少有n个元素
本文关键字:元素 TakeWhile | 更新日期: 2023-09-27 18:22:23
似乎没有e.TakeWhile(predicate, atLeastNElements)
过载。有没有一种方便的方法来表达TakeWhile
,然而,如果有>= N
元素可用,则至少取N
元素?
编辑:我脑海中想到的最好的方法是在TakeWhile
的谓词中捕获一个int,并在返回true
时每次调用将其减少一个。只有在计数器降到零之后才使用实际谓词。
您可以使用TakeWhile
的重载和当前元素的索引:
var e = new [] { 1, 2, 3, 4, 5 };
var n = 3; // at least n
e.TakeWhile((element, index) => index < n || predicate(element));