Microsoft MVP성태의 닷넷 이야기
C# 딕셔너리 생성에 대해 질문드립니다. [링크 복사], [링크+제목 복사],
조회: 15869
글쓴 사람
김이현
홈페이지
첨부 파일
 

안녕하세요. C#에서 딕셔너리를 만드는 데 모르는 점이 있어서 질문드립니다.

제가 만들고 싶은 건 문자열을 키로 가지고 리스트를 값으로 가지는 딕셔너리입니다.

아마 아래와 같이 정의할 수 있을 것 같은데요.

static Dictionary<string, List<String>> dic_list = new Dictionary<string, List<String>>();

질문1) 만약 이 dic_list 딕셔너리에 추가되는 문자열이 너무 길다면, 리스트 크기를 CLR 내부에서 조정해 주는 루틴이 실행되고, 퍼포먼스에 부하가 생기나요?

질문2) 추가되는 아이템의 수는 거의 한 리스트 당 대략 100만 개 정도이고,

만약 추가되는 아이템(문자열 200byte)의 길이를 알고 있을 때, 이 길이를 아래와 같이 미리 지정해 주면 성능에 이점이 있을까요?

static Dictionary<string, List<String>> dic_list = new Dictionary<string, List<String>>(200);

그리고 이 방법이 리스트 아이템의 수가 아니라, 추가될 문자열의 크기를 지정해 주는 게 맞나요?


궁극적으로는 실시간으로 전송되는 대량의 시계열 자료를 가능한한 부하없이 받아서 저장(append)하려는 것이 목적입니다.

https://stackoverflow.com/questions/169973/when-should-i-use-a-list-vs-a-linkedlist/29263914#29263914

이곳을 참고하면, 기본적으로 제공되는 자료 구조 중에서는 LIST가 가장 알맞을 것 같은데, 혹시 작가님께서는 다르게 조언해 주실 부분이 있으실까요?








[최초 등록일: ]
[최종 수정일: 5/3/2019]


비밀번호

댓글 작성자
 



2019-05-03 09시30분
1) 아래의 글을 보면,

C# - int []와 object []의 차이로 이해하는 제네릭의 필요성
; http://www.sysnet.pe.kr/2/0/11805

개별 문자열의 크기와 List의 크기는 관계가 없음을 알 수 있습니다.

2) Dictionary의 생성자에 지정한 200은 Dictionary의 요소 수를 확보하는 것일뿐 문자열의 크기와는 관련이 없습니다.

정성태

1  2  3  4  5  6  7  [8]  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5783구직자1/7/202310112C#개발자 구인광고와 초급개발자 [3]파일 다운로드1
5782Sqli...1/5/202310931윈도우11 노트북에서 exe(Sqlite)만들어 윈도우 7 PC에 설치 시 [5]
5781List맨1/5/202310978List.Add("newobj") 속도는 빠른 편인지요? [11]
5780임세1/3/202312553C# 프로그래밍 10 책 구매한 사람입니다. 3부 자료는 어디서 다운 받을 수 있나요? [4]
5779이건우1/2/202310776안녕하십니까 루프안에서 메세지처리에 관하여 질문드립니다! [2]
5778이건우12/30/202212050안녕하세요 c#에서 dll참조 관련 질문드립니다. [4]
5777감사합니...12/29/202210828UI Thread에 Invoke 처리관련 궁금합니다. [3]
5776pdf맨12/28/202210426C# MouseUp Event + pdf [10]
5775민성12/28/202210148안녕하세요 Class 관련해서 예외처리를 하나로 받아낼수 있는 방법 [1]
5774중급12/27/202211416중급개발자란 어느 수준인지요? [4]
5773김영식12/26/202210411c# 압축파일 읽어 올 때 BinaryRead 한글 처리 문제 [1]
5772눈송이12/26/202211125Excel VSTO 는 왜 Net Core, Net 5, 6 버전을 사용하지 않나요? [2]
5771김훈12/26/202210983c# .net client application 망분리(내부망,외부망) 환경에서 의문의 외부사이트 호출 대기 [2]
5770lsh12/26/202210366클라우디움안에 있는 파일을 File.Copy 하고싶은데 코드로는 접근을 못하나요? [1]
5769울타리12/20/202210850Active Directory 2012R2 2016 또는 2019 마이그렝션 문의 드립니다. [1]
5768c++12/14/202213111Thread를 사용한 C++ DLL에 관련된 질문입니다. [6]파일 다운로드2
5767민성12/9/202210764안녕하세요 ashx로 화일을 저장하고 화일명을 리턴하는데요 [1]
5766김명훈12/9/202210911웹브라우저에서 묻지 않고 바로 다운로드 [2]
5765hong12/1/202211290Winform(.Net6) 클라이언트에서 SignalR Core 웹서버에 접속시 인증서 문제 [3]파일 다운로드1
5764요한11/30/202211481c++ 동일한 객체인지 비교 방법문의 [2]
5763고필석11/30/202210689시작하자마자 비정상 종료하는 프로세스에 대한 문제 해결 조언 요청 드립니다. [3]
5762흰털너부리11/30/202210715wpf mvvm ui update 로딩중 표시 [1]
5761민성11/29/202210631죄송하지만 한가지만 더 여쭈어 보겠습니다 [1]
5760민성11/29/202210564안녕하세요 [2]
5759문정환11/28/202210752c# socket 통신할때 빅엔디언으로 바꿔줘야 하나요? [1]
5758라떼11/28/202213225Linux 에서 winform UI 어플리케이션 실행하기 [3]
1  2  3  4  5  6  7  [8]  9  10  11  12  13  14  15  ...