Microsoft MVP성태의 닷넷 이야기
C# 에서 제공하는 컬렉션들의 차이점이 궁금합니다. [링크 복사], [링크+제목 복사],
조회: 11713
글쓴 사람
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]

... 91  92  93  94  95  [96]  97 
NoWriterDateCnt.TitleFile(s)
46정성태5/31/200413323    답변글 [답변]: 웹페이지 자동로그인..
44반데라이차5/26/200412469안녕하세요~저 오크에요~~^^* [1]
43이윤복4/22/200411329윤보기 입니다.
48정성태5/31/200412639    답변글 [답변]: 윤보기 입니다.
40김대웅2/26/200413726메일 드렸는데.. 읽어보셨는지 모르겠네요.. 많이 바쁘신것 같아요..
41정성태2/29/200412598    답변글 [답변]: 메일 드렸는데.. 읽어보셨는지 모르겠네요.. 많이 바쁘신것 같아요..
42정성태3/6/200413854    답변글 [답변]: 메일로 답변을 드렸는데. 메일이 자꾸 반송되네요. 여기서 답변드립니다.
38문우영1/19/200412163ㅋㅋ 한글 아이디도 되는군요.!!
39정성태1/26/200412760    답변글 [답변]: 다행이네요. ^^;
33신종화1/9/200413653성태님 오랬만이군요 ^^ 새해복 많이 받으세요
35정성태1/17/200411726    답변글 [답변]: 성태님 오랬만이군요 ^^ 새해복 많이 받으세요
32김기영1/5/200412493질문인데요... 웹브라우저로 text를 전송할 수 있을까요??
34정성태1/17/200412024    답변글 [답변]: 질문인데요... 웹브라우저로 text를 전송할 수 있을까요??
28박소연10/30/200315971c언어를 이용한 가계부 프로그램
31정성태12/17/200317406    답변글 [답변]: c언어를 이용한 가계부 프로그램
27임영택9/17/200312597atl com에서 Window Handle 구하고 싶은데(바쁘시더라도 꼭 답변 해주세요!!)
30정성태12/17/200313022    답변글 [답변]: atl com에서 Window Handle 구하고 싶은데(바쁘시더라도 꼭 답변 해주세요!!)
26임영택9/15/200312025IE에서 submit 버튼을 누를때 발생하는 이벤트를 받을수 있나요?
29정성태12/17/200312113    답변글 [답변]: IE에서 submit 버튼을 누를때 발생하는 이벤트를 받을수 있나요?
24임영택9/14/200312161실행중인 DLL과 통신하는 방법?
25임영택9/15/200312279    답변글 [답변]: 자답(해결했습니다)
21박용운7/29/200311837잠긴파일에서...
22박용운7/30/200313302    답변글 왜 MoveFileEx가 먹히지를 않을까요?
23박용운7/30/200313187        답변글 [자답]
19김진호7/28/200312286atl 디버깅
20정성태7/29/200312282    답변글 [답변]: atl 디버깅
... 91  92  93  94  95  [96]  97