Dictionary에서 key 또는 value로 데이터를 삭제하는 방법을 소개합니다. 또한 모든 데이터를 제거하는 방법을 소개합니다.
1. Remove() : key로 데이터 삭제
Dictionary.Remove(key)
는 딕셔너리에서 key가 있을 때 데이터를 삭제하며 true를 리턴합니다. key가 존재하지 않는 경우 삭제가 실패하며 false가 리턴됩니다.
namespace Example {
public class Program {
public static void Main(string[] args) {
Dictionary<string, int> dict = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3 }
};
if (dict.Remove("two")) {
Console.WriteLine("key 'two' removed form dictionary");
}
Console.WriteLine(String.Join(", ", dict));
}
}
}
Output:
key 'two' removed form dictionary
[one, 1], [three, 3]
2. Where() : key로 데이터 삭제
Dictionary.Where(function)
은 function에 맞는 데이터만 새로운 딕셔너리에 추가하여 리턴합니다.
아래 예제의 함수 kvp => !kvp.Key.Equals(keyToRemove)
는 key가 two
와 다른 데이터만 추가합니다. 즉, 키가 two
인 데이터는 제거됩니다.
namespace Example {
public class Program {
public static void Main(string[] args) {
Dictionary<string, int> dict = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3 }
};
String keyToRemove = "two";
Dictionary<string, int> result = dict.Where(kvp => !kvp.Key.Equals(keyToRemove))
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
Console.WriteLine(String.Join(", ", result));
}
}
}
Output:
[one, 1], [three, 3]
3. Where() : value로 데이터 삭제
위의 Where()
예제와 비슷하지만, 특정 value를 찾아서 데이터를 삭제할 수 있습니다.
key와 다르게 value는 동일한 값을 갖고 있는 데이터가 있을 수 있습니다. 이런 경우, 다수의 요소들이 삭제됩니다.
namespace Example {
public class Program {
public static void Main(string[] args) {
Dictionary<string, int> dict = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3 }
};
int valueToRemove = 3;
Dictionary<string, int> result = dict.Where(kvp => !kvp.Value.Equals(valueToRemove))
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
Console.WriteLine(String.Join(", ", result));
}
}
}
Output:
[one, 1], [two, 2]
4. 모든 데이터 제거
Dictionary.Clear()
는 딕셔너리의 모든 데이터를 삭제합니다.
namespace Example {
public class Program {
public static void Main(string[] args) {
Dictionary<string, int> dict = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3 }
};
dict.Clear();
Console.WriteLine(String.Join(", ", dict));
}
}
}
Output:
Loading script...
Related Posts
- C# 바이트(Byte) 배열을 문자열로 변환
- C# String.format() 함수 알아보기
- C# - foreach (Array, List, Dictionary)
- C# 프로퍼티(Property) Get/Set 함수
- C# - Dictionary에서 key, value 가져오기
- C# - Dictionary 순회, foreach, for 루프
- C# - Dictionary에서 key, value 삭제
- C# - Dictionary.add()로 데이터 추가
- C# - Dictionary 선언 및 초기화
- C# - 문자열을 Double, Float으로 변환
- C# - 문자열을 리스트로 변환
- C# - 두 날짜/시간 비교, DateTime.Compare()
- C# - 날짜 계산, DateTime 시간 더하기 빼기
- C# - 날짜 문자열을 DateTime으로 변환
- C# - Sleep, 몇 초간 지연시키기
- C# - Timestamp(millisecond)를 DateTime 객체로 변환
- C# - 현재 시간 가져오기, DateTime
- C# - 문자열 리스트를 문자열로 변환
- C# - 리스트 복사 (얕은 복사, 깊은 복사)
- C# - 2차원 리스트 선언 및 초기화
- C# - 리스트 선언 및 초기화
- C# - 리스트 길이, 크기 가져오기
- C# - 리스트 합계, 평균 계산
- C# - 리스트 요소 제거 (RemoveAt, RemoveAt, RemoveAll)
- C# - 리스트에서 빈 문자열, null 제거
- C# - 리스트 두개로 분리, n개로 나누기
- C# - 문자열 뒤집기, Reverse()
- C# - 2차원 배열 복사, Clone
- C# - 문자열 배열을 문자열로 변환
- C# - 2차원 배열 선언, 초기화 방법
- C# - 배열 길이, 2차원 배열 길이
- C# - 두개의 배열을 하나로 합치기
- C# - 배열 중복 요소 제거
- C# - 배열에서 특정 요소 제거
- C# - Int 배열 정렬 (오름차순, 내림차순)