C#에서 Class를 Dictinonary Key로 사용하는 방법에 대해서 정리를 했다.
Dictionary<Class1, Class2> dict = new Dictionary<Class1, Class2>();
* 위와 같이 Class1을 Key로 사용할려면
public class Class1 { public string Value1 { get; set; } public int Value2 { get; set; }
public override int GetHashCode() { return Value1.GetHashCode() + Value2.GetHashCode(); }
public override bool Equals(object obj) { Class1 o = obj as Class1; return o != null && (o.Value1 == this.Value1 || o.Value2 == this.Value2); } } |
- Dictionary에서 Key를 Class로 사용하기 위해서는
Key에 해당하는 Class에 GetHashCode()와 Equals(object)를 재정의 해줘야 한다.
* 사용법
Dictionary<Class1, Class2> dict = new Dictionary<Class1, Class2>();
dict.Add(new Class1() { Value1 = "My Value", Value2 = 1 }, new Class2() {....} );
dict.Add(new Class1() { Value1 = "My Value", Value2 = 2 }, new Class2() {....} );
- 위와 같은 형식으로 Dictionary Class를 Key로 사용할 수 있다.
Class2 c = dict[new Class1() { Value1 = "My Value", Value2 = 1 }] ;
dict[new Class1() { Value1 = "My Value", Value2 = 1 }] = new Class2() {...} ;
- 위와 같은 형식으로 Dictionary Value를 읽어오고 저장할 수 도 있다.
'C#' 카테고리의 다른 글
ToolStripButton 에 Popup 메뉴 보이기 (0) | 2017.11.08 |
---|---|
C# TabControl의 TabPage에 닫기 버튼 넣기 (0) | 2016.11.23 |
ADO를 이용하여 Excel 화일 생성 (0) | 2016.06.24 |
C#으로 개발한 Oracle Database Viewer 프로그램 - DBViewer (0) | 2015.07.25 |