반응형
C#
Dictionary 사용법
Dictionary 기본 사용법
// 선언
Dictionary<string, string> dic = new Dictionary<string, string>();
// 값 추가
dic.Add("빨강", "red");
dic.Add("파랑", "blue");
// element 수
Console.WriteLine("Dictionary 수 : {0}", dic.Count);
// key 체크
if (dic.ContainsKey("빨강"))
Console.WriteLine("빨강이 있음");
foreach (var key in dic.Keys) {
Console.WriteLine("{0} 은 영어로 {1} 입니다.", key, dic[key]);
}
// 이미 있는 값 변경.
dic["파랑"] = "BLUE";
// red 가 한글로 뭔지 찾기 ( Value 로 Key 찾기 )
string red_to_kor = dic.Where(w => w.Value == "red").Select(s => s.Key).FirstOrDefault();
Console.WriteLine("red 는 한글로 {0} 입니다.", red_to_kor);
// 값을 가져오는 안전한 방법 TryGetValue
string value = "";
if (dic.TryGetValue("빨강", out value))
Console.WriteLine("빨강의 값 : {0}.", value);
else
Console.WriteLine("빨강을 찾을 수 없습니다.");
// 모두 삭제
dic.Clear();
Console.WriteLine("Clear 후 : {0}", dic.Count);
// 중요 ! Exception 이 발생하는 코드들.
Console.WriteLine("보라색은 {0}", dic["보라"]); // 없는 key 바로 사용할 때 ( KeyNotFoundException )
dic.Add("빨강", "RED"); // 이미 존재하는 key add 할 때
이렇게 단순한 key, value 로 사용할 수 도있고, 아래와 같이 key 하나에 여러가지의 데이터를 담으려면 아래와 같이 사용할 수 있습니다.
Dictionary Value 로 Class 사용하기
class 선언
public class Person
{
public int personNumber;
public string name;
public int age;
public Person(int personNumber, string name, int age)
{
this.personNumber = personNumber;
this.name = name;
this.age = age;
}
}
Dictionary<int, Person> dicPerson = new Dictionary<int, Person>();
dicPerson.Add(1001, new Person(1001, "홍길동", 36));
dicPerson.Add(1002, new Person(1002, "임꺽정", 26));
dicPerson.Add(1003, new Person(1003, "프랑캔", 36));
// personNumber 1001 의 name
Console.WriteLine("personNumber 1001 의 name : {0}", dicPerson[1001].name);
// 임꺽정의 나이
int age = dicPerson.Where(w => w.Value.name == "임꺽정").Select(s => s.Value.age).FirstOrDefault();
Console.WriteLine("임꺽정의 나이 : {0}", age);
// 36세 모두 찾기.
foreach(Person p in dicPerson.Where(w=>w.Value.age == 36).Select(s=>s.Value))
{
Console.WriteLine("{0}세. 이름 : {1} ", p.age, p.name);
}
결과
personNumber 1001 의 name : 홍길동
임꺽정의 나이 : 26
36세. 이름 : 홍길동
36세. 이름 : 프랑캔
2019/01/19 - [C# 기술] - DataTable VS Dictionary 검색 속도 차이
728x90
반응형
'C# Windows Form 개발 따라하기' 카테고리의 다른 글
[007] Form modal 효과. 모서리 라운드, 배경 투명하게. Windows Form (2) | 2019.01.22 |
---|---|
[005] CheckBox, RadioButton (Windows Form C#) (0) | 2019.01.18 |
[004] ComboBox . Windows Form 에서 ComboBox 사용하기 (Dropdown, selectbox) (0) | 2019.01.18 |
[003] 모든 개발의 시작. hello world ! (0) | 2019.01.17 |
[002] Visual Studio 테마 변경 방법 (0) | 2019.01.16 |
댓글