似乎沒有e.TakeWhile(predicate, atLeastNElements)
超負荷。是否有方便的方式來表達TakeWhile
,但是,如果有>= N
可用元素,則至少需要N
元素。?TakeWhile,至少有n個元素
編輯:我在腦海中想出的最好的方法是捕獲一個int在TakeWhile
的謂詞中,並在返回true
時減少一個呼叫。實際謂詞僅在計數器下降到零後才使用。
似乎沒有e.TakeWhile(predicate, atLeastNElements)
超負荷。是否有方便的方式來表達TakeWhile
,但是,如果有>= N
可用元素,則至少需要N
元素。?TakeWhile,至少有n個元素
編輯:我在腦海中想出的最好的方法是捕獲一個int在TakeWhile
的謂詞中,並在返回true
時減少一個呼叫。實際謂詞僅在計數器下降到零後才使用。
您可以使用重載TakeWhile
與當前元素的索引:
var e = new [] { 1, 2, 3, 4, 5 };
var n = 3; // at least n
e.TakeWhile((element, index) => index < n || predicate(element));
你的意思是'<3'(即索引0,1和2),並且你已經得到了lambda表達式參數 - 它應該是'(value,index)' - 但是,這基本上就是要走的路。 –
固體!這比我的計數器變量要好。喜歡它! (您可以在11分鐘內接受答案...爲什麼如此,爲什麼?) –
是的,我的意思是'<3'。 – Kvam
到N個元素廣義的問題,勾勒我的解決方案的想法。 –