주어진 개체와 동일한 SortedDictionary에서 키를 검색 할 수있는 방법이 있습니까? 나는 이런 식으로 뭔가 할, 나중에 그런SortedDictionary의 항목과 동일한 키를 가져 옵니까?
var dictionary = SortedDictionary<MyHugeType, int>();
var myEnormousKey = new MyHugeType();
dictionary[myEnormousKey] = 123;
: 설명하기 위해, 나는 상당히 메모리 무거운, 불변의 주요 유형이 사전을 만들 말할 수 분명히
// This is a new instance, but it's identical to the previous key
var myIdenticalKey = new MyHugeType();
if(dictionary.ContainsKey(myIdenticalKey)) {
myIdenticalKey = dictionary.GetKeyEqualTo(myIdenticalKey);
}
// Use myIdenticalKey reference...
를 SortedDictionary하지 않습니다 "GetKeyEqualTo"메소드가 있습니다. 그러나 비슷한 효과를 얻을 수있는 방법이 있습니까? 이것은 기본적으로 무거운 키 객체를 인턴하는 효과가있어 동일한 인스턴스가 삭제 될 수 있습니다. 열쇠의 색인을 검색하고이어서 일치하는 객체 인스턴스를 검색하여 SortedList 클래스를 사용하여이 작업을 수행 할 수 있지만 SortedDictionary의 일관된 삽입 성능이 내 용도에 더 좋을 것입니다.
일치하는 항목을 검색하거나 내 자신의 BST 클래스를 작성하기 위해 모든 사전의 키를 반복하는 방법이 부족합니다. .NET의 내장 컬렉션을 사용하여이 목표를 달성 할 수있는 방법이 있습니까?
이제 아이디어가 있습니다. :-) 나는 더 이상의 직접적인 해결책이 없다면 그걸 갈 수도 있습니다. – nonoitall
원하는 기능을 노출하기 위해 클래스를 다시 작성하지 않고 할 수있는 최선의 방법입니다. 감사! – nonoitall