これは十分に単純なようですが、私はこれの精神的なブロックから抜け出すのに苦労しています。
名前のリストがあり、アイテムはいくつかのビジネスルールに基づいて特別に注文されています。これは、特定の状況に対して正しいと見なされる順序です。
それで
string [] original = {"Bob","Jim","Kat","Nat","Kim","Ant"};
上記の値のいずれかを持つフィールドNameを含むPersonタイプがあります。
それで、
class Person {
...
public string Name; //Name will be one of the above values.
...
}
コレクションには、これらの人物オブジェクトがたくさんあります。
PersonCollection p = new PersonCollection
{ new Person{ .. Name = "Kat"..},
new Person {.. "Kim" ..} ...
} etc.;
これらのオブジェクトはすべて、上記のリストの値のみを含む名前を持つことを知っています。重複することすらありません。この人のコレクションを、マスターリストで指定された名前の順序(つまり、上記の「元の」配列)で並べ替える必要があります。
これまでのところ簡単ですが、ここに注意が必要です。
Personクラスの定義方法により、これを変更することはできません。残念ながら、personオブジェクトには次の使用可能なメソッドしかありません。
アイテムを移動します。
MoveToFirst(PersonCollection collection) // Move to the first of the given collection
MoveToLast(PersonCollection collection) // Move to the last of the given collection
MoveAfter(PersonCollection collection, Person previousPerson) //places the object after another person item, which is present in the list.
誰?ちなみに、おそらくお分かりのように、これは問題の「架空の」表現であり、残念ながら、実際の製品コードをここに投稿したり、説明したりすることはできません。他の誰かが以前に似たようなものに遭遇したことを願っています。