簡體   English   中英

從數組 c# 中存儲選取值的“列表”或“數組”數據結構?

[英]`List` or `array`datastructer to store pick values from array c#?

我從double數組中找到所有選擇,那么哪種數據結構應該有效的ListArray來存儲結果? 我想通過不運行 memory 來提高效率。

double[] n = new double[]{2,1,6,5,3,8,1};  # could be n number of elements

如果我選擇

數組:我可以聲明第一個result數組以將pick元素存儲為n的總大小,然后在找到pick后我將resize它的大小。


列表:或者我可以使用列表,但我擔心的是“列表將在每次列表變滿時添加額外的 memory”,因此會花費運行時間。

那么我應該使用list還是array ,因為在這里我知道result的“最大大小”是多少?

您可以在創建列表時指定初始容量 如果你這樣做,差異很小。 使用你喜歡的任何東西。

您應該考慮您期望的輸入范圍。 如果您希望存儲幾兆字節,它可能並不重要。 如果它是千兆字節,那么開銷和碎片可能變得很重要。 如果它是 TB,那么您將需要考慮從二級存儲中流式傳輸數據,或者一次處理單獨的數據塊。

如果數據的大小會動態增加,那么您幾乎可以肯定更喜歡列表而不是數組。 該列表在內部使用一個數組,並且在它已滿時會自動創建一個新的、更大的數組。 默認情況下,每次列表已滿時容量都會增加一倍,但您可以通過設置list.Capacity控制。 不過,在大多數情況下,默認的增長策略應該沒問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM