이것은 충분히 간단하지만이 항목에서 정신 차단을 해제하는 데 어려움을 겪고 있습니다.문자열 배열을 기반으로 한 개체 모음 정렬
나는 이름 목록을 가지며 항목은 특정 비즈니스 규칙에 따라 구체적으로 정렬됩니다. 이것은 주어진 상황에 맞는 것으로 간주되는 순서입니다.
그래서string [] original = {"Bob","Jim","Kat","Nat","Kim","Ant"};
나는 위의 값 중 하나를 가질 것이다 필드 이름을 포함하는 사람의 유형을 가지고있다.
그래서,
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 클래스가 정의되는 방식 덕분에
, 내가 가서이 변경할 수 없습니다 불행하게도, 우리는 사람 만 객체 즉이동 항목에 다음과 같은 가능한 방법이있다.
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.
누구나? 그런데 여러분이 아마 말할 수 있듯이, 이것은 문제의 "가상의"대표이며, 실제 생산 코드를 게시하거나 토론 할 수는 없습니다. 불행히도. 나는 다른 누군가가 전에 비슷한 것을 만나기를 바랍니다.
다른 사람의 목록을 정렬하거나 MoveAfter 만 사용하여 컬렉션을 다시 정렬하는 데 문제가 있습니까? –
당신은이 질문을 정리해야합니다. 나는 왜 당신이 두려워하는 것이지 회사 비밀을 포기하지 않고 더 합리적인 질문을 공식화 할 수 없다고 확신하지 않습니다. 나는이 혼란을보고 현기증을 느낍니다. – MethodMan
문제는 첫 번째 배열에서 제공되는 항목의 순서에 따라 MoveAfter를 사용하여 컬렉션을 다시 구성하는 것입니다. –