我敢肯定,這個問題的答案是肯定的,但以防萬一:是列表<T> .ConvertAll <TOutput>保證以與其輸入相同的順序返回其輸出?
如果您使用ConvertAll()到輸入列表的元素轉換爲輸出列表,是保證輸出列表按照與輸入列表相同的順序?
我敢肯定,這個問題的答案是肯定的,但以防萬一:是列表<T> .ConvertAll <TOutput>保證以與其輸入相同的順序返回其輸出?
如果您使用ConvertAll()到輸入列表的元素轉換爲輸出列表,是保證輸出列表按照與輸入列表相同的順序?
在文檔中沒有明確的保證是這種情況。該文件僅指定元素將被單獨傳遞給委託,然後放入新的List<T>
。它沒有指定順序。
但是,今天的行爲是元素按順序返回,並且沒有可以想象的原因會改變。
謝謝。如果ConvertAll()並不總是以可預測的順序返回結果,我會遇到一個間歇性錯誤,但我知道它不會那麼簡單。 :) – 2012-01-16 20:05:12
理論上,文檔沒有提到生成的集合的順序,所以不能保證。
實際上,是的,我認爲認爲您可以依賴輸出順序與輸入順序相同的事實。
答案是否定的,不能保證。文檔並不要求它以這種方式發生。這就是說,最合理的實施將以這種方式工作。
我不會假設它,沒有什麼需要它在文檔中。 – Joe 2012-01-16 19:50:53
您是否測試瞭解它的功能? – 2012-01-16 19:54:30
如果您的元素的順序很重要,我認爲最好能夠通過檢查元素本身來確定所需的順序,即確保這些類型暴露可用於對其列表進行排序的屬性。 – 2012-01-16 19:54:35