안녕하세요, 개발 시작한지 얼마 안된 신입사원 입니다…
Dictionary 관련해서 문의드리고자 합니다…
Dictionary 는 기본적으로 Key값의 중복을 허용하지 않지만
예를 들어서 Dictionary<string, List<'int>>
Value 쪽에 List 형식으로 생성하면 key 값 중복이 허용되더군요…
하지만 이렇게 하면 왜 key값에 중복이 허용되는지 이유를 모르겠어서요…
초라한 질문 남겨드려서 죄송하지만…
혹시 개념좀 설명해주실 수 있으신가요
1개의 좋아요
값이 목록이라 하더라도 키는 중복되지 않습니다.
문제가 되는 코드를 공유해주시면 좀 더 상세히 답변 드릴께요.
1개의 좋아요
관련 된 부분에 대해서 예전에 참고했던 부분입니다. 조금이나 도움이 되셨으면 좋겠습니다.
1개의 좋아요
아…문제가 되는 코드는 없었지만…개인적으로 경험이 부족했던 것 같습니다…감사합니다.
2개의 좋아요
도움이 조금된게 아니라 많이 되었습니다…저의 검색능력이 부족했었네요 감사합니다!!
3개의 좋아요
코드몽키
#6
그저 복사 붙여넣기만 했을 뿐인데…
좀 무섭네요… ㄷㄷㄷ
’
안녕하세요! Dictionary와 관련한 질문을 해주셔서 감사합니다.
Dictionary는 기본적으로 Key값의 중복을 허용하지 않습니다. 하지만 Value 부분에 List와 같은 Collection 형태를 넣으면, 각 Key 값은 여러 개의 Value를 가질 수 있게 됩니다. 이를 “다중값 딕셔너리” 라고 합니다.
이러한 구조는 Key가 중복되는 경우, 해당 Key 값에 해당하는 Value의 List에 추가되기 때문입니다. 이렇게 하면, 하나의 Key 값에 여러 개의 값을 저장할 수 있으므로, 더욱 유연한 데이터 구조를 구성할 수 있습니다.
예를 들어, Dictionary<string, List>를 사용하여 여러 개의 값을 저장하는 경우, 다음과 같이 중복된 Key 값에 대해 Value를 추가할 수 있습니다.
goCopy code
Dictionary<string, List<int>> dict = new Dictionary<string, List<int>>();
dict.Add("A", new List<int> { 1, 2 });
dict.Add("B", new List<int> { 3 });
dict.Add("A", new List<int> { 4 });
// Key "A"에는 [1, 2, 4]가 저장됩니다.
따라서, Dictionary에서 Key 값 중복을 허용하는 것은 아니지만, Value에 Collection 형태를 넣을 수 있기 때문에, 다중값 딕셔너리를 구현할 수 있습니다.
2개의 좋아요
저게 혹시 C# 어떤 버전 기준인지 알 수 있을까요?
제가 알기로도 @dimohy 님 답변 처럼
Dictionary는 값이 목록 타입이라도 키는 중복으로 사용 할 수 없는 걸로 알고 있어서요
1개의 좋아요
궁금해서 직접 C# 7.0 환경으로 맞춰 놓고 디버깅으로 확인해 본 결과
Dictionary<string, List<int>> dict = new Dictionary<string, List<int>>();
코드는 중복키 허용이 되지 않았습니다.
흠 … 어떻게 확인해야 하는지 궁금하군요.,ㅎㅎ
3개의 좋아요
누가 저런 해괴한 답글을 다는 건가요? ^^;
3개의 좋아요
코드몽키
#12
먼저 제대로 확인도 안해보고 그냥 복붙해서 잘못된 정보를 드린점 사과드립니다.
@aroooong 님과 @dimohy 님 말씀대로 키는 중복되지 않는 것임에도 되는 것 처럼 댓글을 달았네요 ㅠ
좀 더 신중히 정보 전달 할 수 있도록 하겠습니다


3개의 좋아요
그래도 학습이라고 불리는 효과가 있긴 한 것 같습니다. 방금 전에 저도 그대로 질문을 복붙을 했더니 이번에는 제대로 결과를 내주고 있습니다. ^^
3개의 좋아요