2012-01-16 4 views
0

私はこれへの答えは「イエス」が、念のあるかなり確信している:Is List <T> .ConvertAll <TOutput>は入力と同じ順序で出力を返すことが保証されていますか?

あなたは、出力リストに入力リストの要素を変換するConvertAll()を使用している場合は、あることが保証出力リストであります入力リストと同じ順序で?

+1

私はそれを想定していないだろう、ドキュメントでそれを必要とするものは何もありません。 – Joe

+0

あなたはそれが何かを調べるためにテストしましたか? –

+1

要素の順序が重要な場合は、要素自体を調べることで、必要な順序を決めることができます。つまり、型がプロパティを公開し、それに従ってリストを並べ替えることができます。 –

答えて

2

この場合、ドキュメントには明示的な保証はありません。ドキュメントでは、要素が個別に代理人に渡され、新しいList<T>に配置されることのみが指定されています。それは順序を指定するものではありません。

しかし、今日の動作は、要素が順番に返されることであり、これはこれが常に変わるとは考えられない理由はありません。

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

+0

ありがとうございます。私は、ConvertAll()が常に予測可能な順序で結果を返すわけではないと説明される断続的なバグが1つありますが、それは簡単ではないことが分かっていました。 :) –

0

ドキュメントには結果として得られるコレクションの順序は記載されていないため、保証されません。

実際には、私はだと思います。出力の順序は入力の順序と同じであるという事実に頼ることができます。

0

答えはいいえ、保証されていません。ドキュメンテーションでは、そのように起こる必要はありません。それは最も合理的な実装がそのように動作すると言われています。

関連する問題