중화사전망 - 자전 검색 - 사전 키 정렬

사전 키 정렬

사전은 보통 분류하기 쉽지 않다. SortDictionary 클래스를 사용하여 정렬할 수 있습니다 ... ~ ~ ~ ~ ~ ~ ~

참조 MSDN:

SortedDictionary 일반 클래스는 키 정렬의 키/값 쌍 모음을 나타냅니다.

유형 매개변수

TKey 사전의 키 유형입니다.

TValue 사전의 값 유형입니다.

SortedDictionary 일반 클래스는 검색 작업의 복잡성이 O(log n) 인 이진 조회 트리입니다. 여기서 n 은 사전의 요소 수입니다. 이와 관련하여 SortedList 일반 클래스와 유사합니다. 두 클래스는 유사한 객체 모델을 가지고 있으며 모두 O(log n) 검색 복잡성을 가지고 있습니다. 이 두 클래스의 차이점은 메모리 사용과 요소 삽입 및 삭제 속도입니다.

SortedList 는 SortedDictionary 보다 적은 메모리를 사용합니다.

Foreach(key value pair & ltint, string & gt 내 사전의 kvp ){...}

Foreach 문은 열거 수의 래퍼로, 열거 수만 컬렉션을 읽을 수 있지만 컬렉션은 쓸 수 없습니다.

사용 예:

시스템 사용

시스템을 사용하다. 집합하다. 통용

공용 클래스 예

{

공용 정적 void Main ()

{

//문자열 키를 사용하여 새 문자열 사전을 만듭니다.

//

사전 & ltstring, string & gt 여는 방법 =

새 사전 & ltstring, string & gt ();

//사전에 일부 요소를 추가합니다. 없다

//키가 반복되지만 일부 값은 반복됩니다.

OpenWith. Add ("txt", "notepad.exe");

OpenWith. Add ("BMP", "paint.exe");

OpenWith. Add ("DIB", "paint.exe");

OpenWith. Add ("rtf", "wordpad.exe");

//새 키가 이면 Add 메서드에서 예외가 발생합니다

//은 (는) 이미 사전에 있습니다.

시도하다

{

OpenWith. Add ("txt", "winword.exe");

}

Catch(argument exception)

{

콘솔。 WriteLine(“Key =“txt "txt" 의 요소는 이미 존재합니다. );

}

Item 속성은 인덱서의 다른 이름이므로

//요소에 액세스할 때 해당 이름을 생략할 수 있습니다.

콘솔。 WriteLine(“For key =“rtf "rtf", value = {0}. ",

Open with ["rtf"];

//인덱서는 연결된 값을 변경하는 데 사용할 수 있습니다

//열쇠가 있습니다.

Open with ["rtf"] = "winword.exe";

콘솔。 WriteLine(“For key =“rtf "rtf", value = {0}. ",

Open with ["rtf"];

//키가 없는 경우 해당 키의 인덱서를 설정합니다

//새 키/값 쌍을 추가합니다.

Open with ["doc"] = "winword.exe";

//요청된 키가 인 경우 인덱서에서 예외가 발생합니다

//사전에 없습니다.

시도하다

{

콘솔。 WriteLine(“For key =“TIF "TIF", value = {0}). 그리고,

Open with ["TIF"];

}

Catch(KeyNotFoundException)

{

콘솔。 WriteLine(“Key =“TIF "TIF") 을 찾을 수 없습니다.

}

//프로그램이 종종 결과가 성공하지 못하는 키를 시도해야 할 때

//사전에서 TryGetValue 는 더 효율적일 수 있습니다

//값을 검색하는 방법입니다.

문자열 값 = "";

If(open with). Trygetvalue ("TIF", out value))

{

콘솔。 WriteLine(“For key =“TIF "TIF", value = {0}). , 값);

}

기타

{

콘솔。 WriteLine(“Key =“TIF "TIF") 을 찾을 수 없습니다.

}

// ContainsKey 는 삽입하기 전에 키를 테스트하는 데 사용할 수 있습니다

//그들.

만약 (! OpenWith. Contains key ("ht")

{

OpenWith. Add ("ht", "hypertrm.exe");

콘솔。 WriteLine ("키 =" ht ":{0}" 에 대한 증가 값,

Open with ["ht"];

}

//foreach 를 사용하여 사전 요소를 열거할 때 ,

//요소는 KeyValuePair 객체로 검색됩니다.

콘솔。 Writeline ();

Foreach(key value pair & ltstring, string & gtkvp in openWith)

{

콘솔。 WriteLine(“Key = {0}, 값 = {1} ",

Kvp. 핵심, kvp. 값);

}

//개별적으로 값을 가져오려면 values 속성을 사용합니다.

사전 & ltstring, string & gt. 값 세트 값 세트 =

OpenWith. 가치관

ValueCollection 의 요소는 강력한 유형입니다

//사전 값에 지정된 유형이 있습니다.

콘솔。 Writeline ();

Foreach(value coll 의 문자열 s)

{

콘솔。 WriteLine(“Value = {0} ",s);

}

//키를 개별적으로 가져오려면 keys 속성을 사용합니다.

사전 & ltstring, string & gt. 키 collection keycoll =

OpenWith. 열쇠;

KeyCollection 의 요소는 강한 유형입니다

//사전 키에 지정된 유형이 있습니다.

콘솔。 Writeline ();

Foreach (키 콜의 문자열 s)

{

콘솔。 WriteLine(“Key = {0} ",s);

}

//Remove 메서드를 사용하여 키/값 쌍을 제거합니다.

콘솔。 Writeline ("\ n remove (\" doc \ ")");

OpenWith. Remove ("doc");

만약 (! OpenWith. Contains key ("doc")

{

콘솔。 WriteLine ("키워드" doc "를 찾을 수 없음);

}

}

}

/* 이 코드 예제는 다음과 같은 출력을 생성합니다.

Key =“txt "를 가진 요소가 이미 존재합니다.

키 = "rtf" 의 경우 값은 = wordpad.exe 입니다.

키 = "rtf" 의 경우 값 = winword.exe 입니다.

키 =' TIF' 를 찾을 수 없습니다.

키 =' TIF' 를 찾을 수 없습니다.

키 = "ht": hypertrm.exe 의 부가 가치

키 = txt, 값 = 메모장.exe

키 = BMP, 값 = paint.exe

키 = DIB, 값 = paint.exe

키 = rtf, 값 = winword.exe

키워드 = 문서, 값 = winword.exe

키 = ht, 값 = hypertrm.exe

가치 = notepad.exe

가치 = paint.exe

가치 = paint.exe

가치 = winword.exe

가치 = winword.exe

가치 = hypertrm.exe

키 = txt

주요 = BMP

키 = DIB

키 = rtf

키 = doc

키 = ht

제거 ("doc")

키워드' doc' 를 찾을 수 없습니다.

*/