2010-05-17 13 views
2

나는 나무와 비슷한 것을 찾고있다. 우리는 이미 정렬 된 컬렉션에 지속적으로 삽입하고 있습니다. 최소 및 최대 값에 대한 액세스를 원합니다. 우리는 어떤 가치있는 열쇠도 필요로하지 않습니다. .Net에서 나무 구조를 찾을 수 없었으며 찾고있는 것과 다른 것을 볼 수 없었습니다..Net에는 정렬 된 값만 지원하는 컬렉션이 있습니까? 키가 필요하지 않습니까?

답변

3

.NET 4.0에는 SortedSet이 있습니다. 원하는대로 할 수 있으며, MinMax 속성이 있습니다.

.NET 3.5에는 HashSet이 있지만 주문보다는 평등만을 처리합니다.

+0

안녕 존. 안타깝게도 .Net 4.0은 아직 없습니다. 계획은 곧 도착할 예정이지만, 그 동안 우리는 다른 것을 생각해야합니다. 나는 HashSet을 이미 보았지만 당신이 말한 것처럼 그것은 순서를 지원하지 않는다. 나는 생각을 가지고 있었지만, 얼마나 나쁜 생각인지 모르겠습니다. SortedList를 사용하여 값을 키로 저장하고 null을 값으로 저장하면 어떨까요? 나는 이것이 잘못된 생각 이외의 다른 생각 인 이유를 생각할 수 없다. – uriDium

+0

@uriDium :'SortedList' 대신'SortedDictionary'를 사용하고 싶을 수도 있습니다 - 기본적으로'SortedDictionary' *는 나무 구조이기 때문에 무작위로 삽입하는 것이 더 효율적입니다. 그러나 정렬 된 항목을 추가하는 경우에는 효율성이 떨어집니다. 더 자세한 비교는 문서를 참조하십시오. 이 유형을 자신의 유형으로 포장하고 싶을 수 있습니다. .NET 4를 사용하기 시작할 때 원활하게'SortedSet'으로 이동할 수 있습니다. 기본적으로 작동해야하지만, 추한 것처럼 말입니다. –

+0

의견을 보내 주셔서 감사합니다. 우리는 이미 두 컬렉션으로 테스트를 수행했으며, sortedlist가 약간 밖으로 나와서 우리 시나리오와 데이터의 모양을 위해 sorteddictionary를 수행합니다. 명확하게 컬렉션을 남용하는 것은보기 흉한 일입니다. 아마 우리 자신의 나무를 구현해야한다고 생각합니다. 너무 열심히해서는 안됩니다. 다시 한번 의견에 감사드립니다. – uriDium

관련 문제