이 포스트를 만든 목적
- 공부 하려고
이 포스트의 준비물
- gVim 7.2 (vim 7.3f 가 나왔다.)
- Microsoft Visual C# 2010 Express
- Syntax Highlighter 3.
참조 서적
- Effective C#
- 소설같은 C# 3판
참조 링크
- http://msdn.microsoft.com/ko-kr/library/ms379564%28VS.80%29.aspx
- C# Generics 에 대해서 설명 되어 있다.
- http://msdn.microsoft.com/en-us/library/0sbxh9x2.aspx
- System.Collections.Generics Namespace 기준으로 클래스, 인터페이스, 컬렉션을 설명한다.
- http://kimstar.pe.kr/blog/100
- C# Generic Collection 종류에 대해서 설명 되어 있다.
내용
Generic collection 사용을 권장하고 있기 때문에, Generic collection 만 이야기 한다.
Collection 을 왜 이용 하는가?
- 프로그램 실행 중 데이터가 추가되거나 삭제 될 때, 해당 데이터를 손쉽게 관리하기 위해서
어떤 Generic Collection 이 있는가?
- List<T> - http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx
- SortedList<TKey, TValue> - http://msdn.microsoft.com/en-us/library/ms132319.aspx
- LinkedList<T> - http://msdn.microsoft.com/en-us/library/he2s3bh7.aspx
- Dictionary<TKey, TValue> - http://msdn.microsoft.com/en-us/library/xfhwa508.aspx
- SortedDictionary<TKey, TValue> - http://msdn.microsoft.com/en-us/library/f7fta44c.aspx
- HashSet<T> - http://msdn.microsoft.com/en-us/library/bb359438.aspx
- SortedSet<T> - http://msdn.microsoft.com/en-us/library/dd412070.aspx
- Queue<T> - http://msdn.microsoft.com/en-us/library/7977ey2c.aspx
- Stack<T> - http://msdn.microsoft.com/en-us/library/3278tedw.aspx
- SynchronizedCollection<T> - http://msdn.microsoft.com/en-us/library/ms668265.aspx
- SynchronizedKeydCollection<K, T> - http://msdn.microsoft.com/en-us/library/ms668294.aspx
- SynchronizedReadOnlyCollection<T> - http://msdn.microsoft.com/en-us/library/ms404554.aspx
어떻게 적절한 Generic Collection 을 선택 하는가?
- 우선 List<T> 를 사용한다.
- 자료 구조 특성이 배열 구조가 아닐 경우, 구조를 파악하고, 각 Generic Collection 을 선택한다.
- 사실 나도 보는 내내, 필요할 때 봐야겠다고 생각했다.
- 요령으로 SortedCollection 은 이진트리 기반의 Collection 이고, Dictionary 는 Hash 기반인 사실만 알면, 선택하는데 무리가 없다.
결론
- Generic Collection 종류는 많으므로, 적절한 것을 선택하면, 좋은 성능을 만끽할 수 있다.
여담
- 필요할 때 다시 봐야지
'책 정리 > Effective C#' 카테고리의 다른 글
item 45, 견고한 예외 보증 기법이 더 좋다. (0) | 2010.08.25 |
---|---|
item 44, 애플리케이션에 특화된 예외 클래스를 완벽하게 작성하라. (1) | 2010.08.23 |
item 43, reflection을 과도하게 사용하지 말라 (0) | 2010.08.19 |
item 42, reflection을 단순화하기 위해서 attribute를 사용하라 (0) | 2010.08.18 |
item 41, 새로운 구조체보다는 DataSet이 좋다. (0) | 2010.08.15 |
item 39, 닷넷의 유효성 검증 기능을 사용하라. (0) | 2010.08.10 |
item 38, 데이터 바인딩을 사용하라. (0) | 2010.08.04 |
item 37, 표준 환경설정 메커니즘을 이용하라 (0) | 2010.08.03 |
item 36, 닷넷 런타임의 진단기능을 활용하라 (0) | 2010.08.01 |
item 35, 이벤트 핸들러보다 override를 사용하는 편이 낫다. (0) | 2010.08.01 |
최근댓글