2012-01-16 30 views
0

我敢肯定,這個問題的答案是肯定的,但以防萬一:是列表<T> .ConvertAll <TOutput>保證以與其輸入相同的順序返回其輸出?

如果您使用ConvertAll()到輸入列表的元素轉換爲輸出列表,是保證輸出列表按照與輸入列表相同的順序?

+1

我不會假設它,沒有什麼需要它在文檔中。 – Joe 2012-01-16 19:50:53

+0

您是否測試瞭解它的功能? – 2012-01-16 19:54:30

+1

如果您的元素的順序很重要,我認爲最好能夠通過檢查元素本身來確定所需的順序,即確保這些類型暴露可用於對其列表進行排序的屬性。 – 2012-01-16 19:54:35

回答

2

在文檔中沒有明確的保證是這種情況。該文件僅指定元素將被單獨傳遞給委託,然後放入新的List<T>。它沒有指定順序。

但是,今天的行爲是元素按順序返回,並且沒有可以想象的原因會改變。

參考:http://msdn.microsoft.com/en-us/library/73fe8cwf.aspx

+0

謝謝。如果ConvertAll()並不總是以可預測的順序返回結果,我會遇到一個間歇性錯誤,但我知道它不會那麼簡單。 :) – 2012-01-16 20:05:12

0

理論上,文檔沒有提到生成的集合的順序,所以不能保證。

實際上,是的,我認爲認爲您可以依賴輸出順序與輸入順序相同的事實。

0

答案是否定的,不能保證。文檔並不要求它以這種方式發生。這就是說,最合理的實施將以這種方式工作。

相關問題