我有號碼的清單,我想選擇有一定規模的滑動窗口:列表視圖推拉窗
List<double> lst = {3,78,24,25,634,25,478,24};
int WindowSize = 4;
index = 0: return {3};
index = 1: return {3,78};
index = 2: return {3,78,24};
index = 3: return {3,78,24,25};
index = 4: return {78,24,25,634};
index = 5: return {24,25,634,25};
index = 6: return {25,634,25,478};
index = 7: return {634,25,478,24};
這是並不難的一個概念,但我正在努力用.Skip() .Take()
擴展方法來完成。是否有更簡單的方法在項目前面選擇WindowSize
條目,而不是試圖找到起點位置,然後獲取下一個WindowSize
條目?我試圖想到一個更簡單的方法來做到這一點,而不是所有的邊界檢查與Skip()
和Take()
需要檢查。
您可以將列表反轉,然後執行Count() - 索引,然後執行Take(),但看起來效率不高。
,你可以簡單地使用跳過(索引windowSize),負值會被忽略和0 – Alexander 2011-05-13 04:10:03
@Alexander處理是的,你是對的- 我錯過了。糾正。謝謝。 – YetAnotherUser 2011-05-13 04:13:39