TakeWhile,至少有n个元素

本文关键字:元素 TakeWhile | 更新日期: 2023-09-27 18:22:23

似乎没有e.TakeWhile(predicate, atLeastNElements)过载。有没有一种方便的方法来表达TakeWhile,然而,如果有>= N元素可用,则至少取N元素

编辑:我脑海中想到的最好的方法是在TakeWhile的谓词中捕获一个int,并在返回true时每次调用将其减少一个。只有在计数器降到零之后才使用实际谓词。

TakeWhile,至少有n个元素

您可以使用TakeWhile的重载和当前元素的索引:

var e = new [] { 1, 2, 3, 4, 5 };
var n = 3; // at least n
e.TakeWhile((element, index) => index < n || predicate(element));