SortedList는 제외됩니다. 기존 컬렉션에서 가장 적절하다고 생각되는 항목은 무엇입니까? (동일한 빠른 액세스 및 변경을 유지)Silverlight에 SortedList 이식
실버 라이트 사전을 영구적으로 정렬 할 수 있습니까?
안부 VLK
SortedList는 제외됩니다. 기존 컬렉션에서 가장 적절하다고 생각되는 항목은 무엇입니까? (동일한 빠른 액세스 및 변경을 유지)Silverlight에 SortedList 이식
실버 라이트 사전을 영구적으로 정렬 할 수 있습니까?
안부 VLK
은 귀하의 질문에 대답하려면 : 아니오 사전 키에 의해 정렬 된 항목을 보장하지 않습니다.
그러나 List<T>
은 BinarySearch
방법을 지원합니다. 이렇게하면 SortedList
의 유사한 목표를 달성하는 데 도움이됩니다.
설명서에는 기본적으로 어떻게 적용되는지에 대한 좋은 예가 있습니다. 참조 : -
당신은 인 Wintellect의 Power Collections 한 번 봐 걸릴 수 있습니다. 이 라이브러리는 EPL에서 무료입니다. OrderedMultiDictionary가 당신을 속일 것이라고 생각합니다. 이것을 Silverlight 아래에서 컴파일 할 수 있어야합니다. 2 년 동안 이것을 사용하지는 않았지만이 라이브러리 (및 Richter의 스레딩 라이브러리)를 WPF 프로젝트에 사용했습니다.
편집 :
는 전원 컬렉션은 실버 라이트에서 작동하도록하기 위해 약간의 작업을 수행해야합니다처럼 보이는이와 놀아 후.
나는 Wintellect Power Collections와 C5 Generic Collections를 모두 Silverlight로 포팅했습니다. 나는 그들을 여기에서 이용할 수있게했다 - http://jaykimble.net/powercollections-and-c5-collections-for-silverlight4.aspx.
주로이 질문이 내 관심사를 극복했기 때문에이 작업을 수행했습니다. 당신이 그들과 함께 사용하고자하는 어떤 유형의 프로젝트에서도 자유롭게 사용할 수 있습니다.
Silverlight를 사용하지 않았다면 KeyValuePair 유형의 제네릭 목록을 만든 다음 목록을 주문해야했습니다.
List<KeyValuePair<int, string>> sampleList = new List<KeyValuePair<int, string>>();
//Assuming you have a set of objects in an array or list
foreach(var item in items)
{
sampleList.Add(new KeyValuePair<int, string>>(item.ID, item.Description))
}
sampleList = sampleList.OrderBy(data => data.Key).ToList();
효과는 정렬 된 목록을 사용하는 것과 같습니다.
감사합니다. 여전히 의사의 말 : 목록은 비교기 구현에 따라 이미 정렬되어 있어야합니다. 그렇지 않으면 결과가 올바르지 않습니다. –
VLK
아, 당신의 생각은 BinarySearch .. 흠에 의해 주어진 위치에 항상 삽입 정렬 목록을 유지하는 것입니다, 나는 컬렉션 시간에 삽입 시간의 의존성을 확인합니다. – VLK