HybridDictionary는 컬렉션의 크기가 작을 때는 ListDictionary로 동작하고, 항목이 많아지면 자동으로 Hashtable로 전환되는 컬렉션 클래스입니다. 이 컬렉션에서 특정 키에 해당하는 요소를 제거하려면 Remove() 메서드를 사용합니다.
Remove() 메서드란?
Remove(Object key) 메서드는 매개변수로 전달된 키와 일치하는 키-값 쌍을 HybridDictionary에서 삭제합니다. 만약 해당 키가 존재하지 않더라도 예외를 발생시키지 않고 그대로 통과합니다.
예제
다음은 두 개의 HybridDictionary를 생성한 후, Remove() 메서드로 지정된 키의 항목을 제거하는 예제입니다.
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
HybridDictionary dict1 = new HybridDictionary();
dict1.Add("A", "Books");
dict1.Add("B", "Electronics");
dict1.Add("C", "Smart Wearables");
dict1.Add("D", "Pet Supplies");
dict1.Add("E", "Clothing");
dict1.Add("F", "Footwear");
Console.WriteLine("HybridDictionary1 elements...");
foreach(DictionaryEntry d in dict1) {
Console.WriteLine(d.Key + " " + d.Value);
}
HybridDictionary dict2 = new HybridDictionary();
dict2.Add("1", "One");
dict2.Add("2", "Two");
dict2.Add("3", "Three");
dict2.Add("4", "Four");
dict2.Add("5", "Five");
dict2.Add("6", "Six");
Console.WriteLine("\nHybridDictionary2 key-value pairs...");
IDictionaryEnumerator demoEnum = dict2.GetEnumerator();
while (demoEnum.MoveNext())
Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
dict2.Remove("3");
Console.WriteLine("\nHybridDictionary2 key-value pairs...UPDATED");
demoEnum = dict2.GetEnumerator();
while (demoEnum.MoveNext())
Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
HybridDictionary1 elements... A Books B Electronics C Smart Wearables D Pet Supplies E Clothing F Footwear HybridDictionary2 key-value pairs... Key = 1, Value = One Key = 2, Value = Two Key = 3, Value = Three Key = 4, Value = Four Key = 5, Value = Five Key = 6, Value = Six HybridDictionary2 key-value pairs...UPDATED Key = 1, Value = One Key = 2, Value = Two Key = 4, Value = Four Key = 5, Value = Five Key = 6, Value = Six
출력을 보면 dict2.Remove("3") 호출 이후 키 "3"에 해당하는 항목이 사라진 것을 확인할 수 있습니다.
추가 예제
이번에는 하나의 HybridDictionary에서 여러 번 Remove()를 호출하여 항목을 순차적으로 제거하는 예제를 살펴보겠습니다.
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
public static void Main() {
HybridDictionary dict = new HybridDictionary();
dict.Add("1", "Marketing");
dict.Add("2", "Purchase");
dict.Add("3", "Sales");
dict.Add("4", "IT");
dict.Add("5", "Finance");
dict.Add("6", "Operations");
Console.WriteLine("HybridDictionary key-value pairs...");
IDictionaryEnumerator demoEnum = dict.GetEnumerator();
while (demoEnum.MoveNext())
Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
dict.Remove("3");
Console.WriteLine("\nHybridDictionary key-value pairs...UPDATED");
demoEnum = dict.GetEnumerator();
while (demoEnum.MoveNext())
Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
dict.Remove("4");
Console.WriteLine("\nHybridDictionary key-value pairs...UPDATED");
demoEnum = dict.GetEnumerator();
while (demoEnum.MoveNext())
Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
HybridDictionary key-value pairs... Key = 1, Value = Marketing Key = 2, Value = Purchase Key = 3, Value = Sales Key = 4, Value = IT Key = 5, Value = Finance Key = 6, Value = Operations HybridDictionary key-value pairs...UPDATED Key = 1, Value = Marketing Key = 2, Value = Purchase Key = 4, Value = IT Key = 5, Value = Finance Key = 6, Value = Operations HybridDictionary key-value pairs...UPDATED Key = 1, Value = Marketing Key = 2, Value = Purchase Key = 5, Value = Finance Key = 6, Value = Operations
정리
이처럼 Remove() 메서드를 사용하면 HybridDictionary에서 원하는 키의 항목을 간단히 제거할 수 있습니다. 첫 번째 예제에서는 키 "3"이, 두 번째 예제에서는 키 "3"과 "4"가 차례로 삭제되어 업데이트된 컬렉션이 출력되는 것을 확인했습니다. 참고로 제거할 키가 존재하지 않으면 아무 일도 일어나지 않으므로, 필요하다면 Contains() 메서드로 키의 존재 여부를 미리 확인하는 것이 좋습니다.