2010-05-14 5 views
3

SortedList는 제외됩니다. 기존 컬렉션에서 가장 적절하다고 생각되는 항목은 무엇입니까? (동일한 빠른 액세스 및 변경을 유지)Silverlight에 SortedList 이식

실버 라이트 사전을 영구적으로 정렬 할 수 있습니까?

안부 VLK

답변

0

은 귀하의 질문에 대답하려면 : 아니오 사전 키에 의해 정렬 된 항목을 보장하지 않습니다.

그러나 List<T>BinarySearch 방법을 지원합니다. 이렇게하면 SortedList의 유사한 목표를 달성하는 데 도움이됩니다.

설명서에는 기본적으로 어떻게 적용되는지에 대한 좋은 예가 있습니다. 참조 : -

List<T>.BinarySearch Method (T)

+0

감사합니다. 여전히 의사의 말 : 목록 은 비교기 구현에 따라 이미 정렬되어 있어야합니다. 그렇지 않으면 결과가 올바르지 않습니다. – VLK

+0

아, 당신의 생각은 BinarySearch .. 흠에 의해 주어진 위치에 항상 삽입 정렬 목록을 유지하는 것입니다, 나는 컬렉션 시간에 삽입 시간의 의존성을 확인합니다. – VLK

0

당신은 인 Wintellect의 Power Collections 한 번 봐 걸릴 수 있습니다. 이 라이브러리는 EPL에서 무료입니다. OrderedMultiDictionary가 당신을 속일 것이라고 생각합니다. 이것을 Silverlight 아래에서 컴파일 할 수 있어야합니다. 2 년 동안 이것을 사용하지는 않았지만이 라이브러리 (및 Richter의 스레딩 라이브러리)를 WPF 프로젝트에 사용했습니다.

편집 :

는 전원 컬렉션은 실버 라이트에서 작동하도록하기 위해 약간의 작업을 수행해야합니다처럼 보이는이와 놀아 후.

2

나는 Wintellect Power Collections와 C5 Generic Collections를 모두 Silverlight로 포팅했습니다. 나는 그들을 여기에서 이용할 수있게했다 - http://jaykimble.net/powercollections-and-c5-collections-for-silverlight4.aspx.

주로이 질문이 내 관심사를 극복했기 때문에이 작업을 수행했습니다. 당신이 그들과 함께 사용하고자하는 어떤 유형의 프로젝트에서도 자유롭게 사용할 수 있습니다.

0

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(); 

효과는 정렬 된 목록을 사용하는 것과 같습니다.