문제

가능한 중복:
우선 순위에서 큐.Net

이 질문 비슷하지만,하고 싶을 정확히 알고 있:

어떤 클래스/구조/...습니다.순위 우선 순위 큐?처럼에 있는 STL priority_queue 니다.그것은 허용 기능을 지원하는 맞춤형습니다.

최고의 것을 발견했습니다.Net 다음 코드 예제에서는 만들< 키의 값> 는 종류의 값을 의 열쇠이다.그래서 하나의 솔루션을 구현하고 사용자 지정 인터페이스 키 클래스입니다.지 별도의 요소로 키/값 쌍으로 이루어져 있습니다.나는 원자 요소는 대기 중에 따라 자신의 값으로 사용자 정의 기능입니다.

그래서,어떤 컬렉션에서 클래스.그물을 받아 비교 기능에 대한 정렬이 그것의 요소가?

하는 방법은 없을 파생.Net 클래스(어쩌면 HashSet)이 기능을 지원하는?


참고:

  • 내가 알고 있는 많은 제삼자에게 구현되는 정말 좋은 클래스에 대한이.어쩌면 좋은 예입니다 PowerCollections.하지만 내가 원하 t 빠르고 간단한 솔루션을 사용하여 기존하는 클래스.Net
  • 내가 사용합니다..Net Framework3.5 과 같은 C#;)
도움이 되었습니까?

해결책

사용할 수 있습니다 SortedDictionary 클래스 일반적입니다.

지정할 수 있습니다 비교자체 생성자, 에는 우선 순위를 비교한 귀하의 개체:

public class DataComparer : IComparer<Data>
{
    public Int32 Compare(Data a, Data b)
    {
        if (a == null && b == null)
            return 0;
        if (a == null)
            return -1;
        if (b == null)
            return +1;
        return a.Priority.CompareTo(b.Priority);
    }
}

SortedDictionary<Data, Data> priQueue = new SortedDictionary<Data, Data>(
    new DataComparer());

다른 팁

할 수 있습니다 그냥 구현 IComparable 에서 당신의 클래스를 만들고 특정 비교자의 내부 클래스는 방법은 명령을 사용할 수 있습니다.정렬()?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top