我希望能夠迭代項目的枚舉,並且每個元素都返回到目前爲止迭代的最小值。運行最小值列表
我的代碼如下所示:
var items = new List<int>{1, 2, -1, 3, -2, 1, 1, 2, -1, -3};
var min = items.First();
var drawdown = items.Select(i =>
{
if(i < min)
{
min = i;
return i;
}
else
{
return min;
}
});
所以對於價值1, 2, -1, 3, -2, 1, 1, 2, -1, -3
得到的名單看起來像:
1
1
-1
-1
-2
-2
-2
-2
-2
-3
但是,這是不是很優雅。是否有更容易閱讀(linq?)的方式?我看着Aggregate,但它似乎是錯誤的工具。最終,項目列表將會非常長,成千上萬。如此好的表現將是一個問題。
以何種方式是'{ 1,2,-1,3 ...}是一個排序列表? –
是的,這是一個排序列表。 (讓我更新我的問題)。 –
該代碼不會編譯。 'SortedList'不會做你認爲它做的事。我建議你拿出比「粗略草案代碼」更多的東西,這樣你至少可以呈現一個現實的場景。請閱讀http://tinyurl.com/so-list –