중화사전망 - 자전 검색 - 사전 키 정렬
사전 키 정렬
참조 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' 를 찾을 수 없습니다.
*/