CollidableActorオブジェクトのリストを保持したいのですが、プロパティ ".Position.X"でソートされています。C#値でオブジェクトをソート
私は、これを行う最も速い(最も効率的な)方法が何であるか疑問に思っています。最初はSortedDictionaryを使い、次にSortedListを使うことを考えていましたが、SortedDictionariesはもっと高速です。
私は辞書やリストが必要かどうかわからないので、私は混乱しています。また、IComparableインターフェイスを実装し、CompareTo()メソッドを作成する場合は、.Position.Xを返すだけで十分でしょうか?
もしそうでない場合は、.Position.Xによれば、それらを追加/削除する際に、素早く並べ替えるために使用できるより優れた構造またはクラスがありますか? (私はリストにオブジェクトをたくさん追加/削除していますが、リストを使う前に、オブジェクトが追加されると並べ替える方がいいですか?
ありがとうございます。
編集:Infactは、すべてのオブジェクトが一意であるため、HashSetコレクションのいくつかの並べ替えはお勧めですか?ありがとう。
並べ替えが必要なオブジェクトは、リストにいくつあると思われますか?何百、何百万? –
上の数百;つまり、100と1000の間です。 – Xenoprimate
私は、その場合、現代のクライアントでパフォーマンスの改善が小さくなる可能性が高いことを示しています。) 私のお金のために返すようにIComparableを実装します.Position.Xを使用し、簡単に並べ替えられたリストを使用します。 –