티스토리 뷰
목차
반응형
C# Dictionary, ContainsValue, 인덱서, Clear 예제 3개
ContainsValue. 이 함수는 ContainsKey 보다 아주 느립니다. 전체를 순회하는 복잡한 선형 구조입니다. 모든 요소를 탐색하며 일치하는 항목을 찾거나, 순회가 끝나면 종료합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | using System; using System.Collections.Generic; class Program { static void Main() { Dictionary<string, int> d = new Dictionary<string, int>(); d.Add("cat", 1); d.Add("dog", 2); if (d.ContainsValue(1)) { Console.WriteLine(true); // True. } } } | cs |
[C# Dictionary, ContainsValue, 인덱서, Clear 예제 3개]
인덱서. Dictionary에 값을 추가할 때 항상 Add 함수를 쓰지 않아도 됩니다. ["key"] 괄호를 이용한 인덱서로 키를 할당할 수 있습니다.
단, 이미 존재하는 키에 대해선 에러가 발생합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | using System; using System.Collections.Generic; class Program { static void Main() { Dictionary<int, int> dictionary = new Dictionary<int, int>(); // We can assign with the indexer. dictionary[1] = 2; dictionary[2] = 1; dictionary[1] = 3; // Reassign. // Read with the indexer. // ... An exception occurs if no element exists. Console.WriteLine(dictionary[1]); Console.WriteLine(dictionary[2]); } } | cs |
[C# Dictionary, ContainsValue, 인덱서, Clear 예제 3개]
Clear. 이 함수로 모든 데이터를 지웁니다. Dictionary 변수가 null로 할당되며 가비지 컬렉터가 실행됩니다.
Count. Dictionary에 있는 키의 개수를 리턴합니다.
[C# Dictionary, ContainsValue, 인덱서, Clear 예제 3개]
Remove. String.Empty나 null로 값을 설정하거나 제거할 수 있지만, 키를 삭제할 순 없습니다. 아래는 『요소 삭제 예제』입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | using System; using System.Collections.Generic; class Program { static void Main() { Dictionary<string, int> d = new Dictionary<string, int>(); d.Add("cat", 1); d.Add("dog", 2); d.Remove("cat"); // Removes cat. d.Remove("nothing"); // Doesn't remove anything. } } | cs |
Copy. Dictionary에는 모든 값을 복사하는 생성자를 제공합니다. 코드 재사용성이 높아지죠.
Return. Dictionary는 클래스 형태로 인수나 리턴값으로 사용할 수 있습니다.
C# Dictionary, ContainsValue, 인덱서, Clear 예제 3개
반응형