Microsoft MVP성태의 닷넷 이야기
C# 에서 제공하는 컬렉션들의 차이점이 궁금합니다. [링크 복사], [링크+제목 복사],
조회: 3422
글쓴 사람
kr1
홈페이지
첨부 파일
 

C#에는 다음과 같이 비슷한데 여러 종류의 Collections이 있는것 같습니다.
System.Collections.Generic의 Dictionary
System.Collections.Concurrent의 ConcurrentDictionary
System.Collections.Immutable의 ImmutableDictionary
System.Collections.ObjectModel의 ReadOnlyDictionary

위와 같이 동일한 Collection을 여러개 만들어 놓은 이유가 있을 것 같은데.
각각 어떤 차이점이 있고 어떤 용도로 활용하는게 좋을까요?
어떤 경우에 어떤 Collection을 사용해야 할지 잘 감이 오지 않습니다.








[최초 등록일: ]
[최종 수정일: 1/10/2023]


비밀번호

댓글 작성자
 



2023-01-10 03시20분
Dictionary의 thread-safe한 버전이 ConcurrentDictionary입니다.
Dictionary에 Add/Remove/Update를 하는 경우 아예 새롭게 생성한 Dictionary를 반환하는 것이 ImmutableDictionary입니다.
Dictionary에 읽기만 가능하도록 AsReadOnly 메서드를 호출해 반환받은 것이 ReadOnlyDictionary입니다.

말 그대로 "Concurrent", "Immutable", "ReadOnly"의 역할을 합니다. 딱히 더 쉽게 설명하려면 장황해질 것 같고, 각각의 타입에 대해 예제 코드를 검색해 보시면 좀 더 이해를 넓힐 수 있을 것입니다.
정성태
2023-01-10 03시23분
[guest] concurrent는 thread가 필요한 경우 아닌가요?
Immutable은 변경이 불가능하도록 할 때
ReadOnlyDictionary는 파일 작업할 때
[guest]
2023-01-10 03시48분
[guest] 또 한수 배웠네요
[guest]

... 16  17  18  [19]  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5455한예지 donator1/16/20216408교재 194페이지 콜백메서드 질문 있습니다! [5]
5454한예지 donator1/15/20216053교재 208쪽 질문....있습니다... [3]
5453안녕하세요1/15/20217485C# dll 파일을 C++에서 사용 시 memory leak 문제 [2]파일 다운로드1
5452예지1/15/20216626var를 사용할 수 없는 이유가 궁금합니다! [3]
5451예지1/14/20215467for문의 초기식에 대해 질문드립니다. [3]
5450예지1/13/20215473Action 델리게이트 사용법 질문있습니다! [2]
5449김성민1/13/20216187Winform UserControl 상속 vs 감싸기? [2]
5448서형주1/13/20215906안녕하세요~~ DataGridView에 데이터를 표시하는 동작방법이 궁금합니다. [2]
5447종범1/11/20217558[WPF/OpenCV] 이미지->영상 저장에 대해서 질문 드립니다!! [5]파일 다운로드1
5446민우1/11/20215570닷넷 런타임을 dll 파일로 포함시킬수 있나요? [2]
5445정도현1/8/20215334directShow RenderFile 관련 재질문드립니다 [5]파일 다운로드1
5444정도현1/8/20215323directShow RenderFile 관련 질문드립니다 [3]
5443윤영호1/7/20215703xml 파일에서 데이터를 가지고 와서 list에 넣는 것을 질문드리고 싶습니다. [1]파일 다운로드1
5442진우1/4/20215490DB연결 객체나 파일 등은 GC 에서 관리해주지 않는 이유가 궁금합니다. [2]
5441한예지 donator1/4/20215918DB 연결 방법 질문 있습니다. [1]
5440한예지 donator1/1/20216523추상클래스로와 new [4]
5439이상호12/31/20208076VC 프로젝트 에서 _main 함수에서 참조되는 확인할 수 없는 외부 기호 [4]파일 다운로드1
5438김윤12/29/202010222C# winform using으로인한 메모리 해제 타이밍과 변수 복사 타이밍 [2]
5437한예지 donator12/25/20207282for문 안에 있는 지역변수의 생성 및 유지 기간에 대해 질문드립니다! [6]
5436영귤12/24/20205984fixed는 자동으로 stackalloc이 되는 건가요? [1]
5435한예지 donator12/24/20205815ArraySegment, Span, ReadOnlySpan 질문있습니다! [1]
5434한예지 donator12/23/20206368ToString 재정의 질문있습니다! [8]
5433한예지 donator12/23/20206363List<ArrarySegment<int>> 사용법 질문드립니다! [2]
5431한예지 donator12/17/20208193비동기 소켓 서버 질문 드립니다! [1]
5430종범12/16/20207333[WPF] Task 관련 재질문 드립니다. [2]파일 다운로드1
5429종범12/16/20207259[WPF] Task 관련 질문 드립니다. [1]파일 다운로드1
... 16  17  18  [19]  20  21  22  23  24  25  26  27  28  29  30  ...