言語仕様: C# .NET 3.5/4.0; プロジェクトは、コンパイル済みの DLL、つまり他の製品によって呼び出されたり使用されたりする「モジュール」であることを意図しています。
私の質問は全体的な効率に関するもので、これは「メモリ使用量と CPU サイクル」の決定に帰着する可能性があることを理解しています。これは問題ありません。
メソッドに渡された MyObjects のリストがあり、メソッドは Property2 でリストを並べ替え、それで「何か」を実行し、次に Property1 でリストを並べ替えて「何か他のこと」を行い、人生を続ける必要があります。重要: List は、最初にメソッドに入ったとき (たとえば、データ レイヤーから)、Property1によって既に並べ替えられています。
次のように、Sort はどちらも「カスタム インライン」になります。
myList.Sort((ObjA, ObjB) => ObjA.Prop2.CompareTo(ObjB.Prop2));
2 つのソートを実行することは良い考えですか? または、List を新しい ListB に複製し、Sort を 1 回だけ呼び出す方がよいでしょうか (ListB で、Prop2 によって)。次に、それで「何か」を行い、完了したら、元のリストを「他の何か」に使用して続行します。
私の最初の推測では、「Two Sorts」はより多くの CPU サイクルを回転させますが、「Clone & Sort」はより多くのメモリを使用します (新しい ListB オブジェクトを作成する必要があるため) - はい、List メンバー (MyObjects) が複製されず、新しい ListB によってポイントされるだけです。
考え?