Microsoft MVP성태의 닷넷 이야기
중첩 딕셔너리를 어떻게 만들 수 있을까요? [링크 복사], [링크+제목 복사],
조회: 15455
글쓴 사람
C#초보
홈페이지
첨부 파일
 

안녕하세요. C#으로 CSV 파일을 읽고, 칼럼을 기준으로 딕셔너리를 만들려고 합니다.

만약 칼럼이 두 개이고, 첫번쨰 칼럼을 key로, 두번째 칼럼을 value로 하려면 (dict = {'key':'value'} 형태)

    Dictionary<string, string> dict = File.ReadLines("file.csv")
                                          .Skip(1)
                                          .Select(line => line.Split(','))
                                          .ToDictionary(line => line[0], line => line[1]);

위와 같이 하면 될 것 같은데요.

만약 칼럼이 두 개 이상이고, 첫번째 칼럼을 key로, 나머지 칼럼을 각각 칼럼 이름에 해당하는 내부 딕셔너리로 만들려면 어떻게 해야 할까요?

( dict = {'key' : {'column1Name':'value1', 'column2Name':'value2, ...} }

Dictionary<string, Dictionary<string, string>> 형태)


반복문을 사용하지 않고 한 번에 표현할 수 있는 방법이 있으면 알고 싶습니다.

읽어 주셔서 감사합니다.








[최초 등록일: ]
[최종 수정일: 11/6/2019]


비밀번호

댓글 작성자
 



2019-11-06 08시53분
한 가지 가정을 해볼까요? Skip 메서드가 Enumerable에 확장 메서드로 정의되어 있지 않았다면 어떻게 구현하시겠습니까? 결국 마찬가지로 (Microsoft가 그랬던 것처럼) while 반복을 사용해 확장 메서드로 자신만의 Skip을 만들어야 했을 것입니다.

따라서, 없는 기능이라면 확장 메서드를 더 정의해 추가하시면 됩니다.
정성태
2019-11-07 01시38분
[C#초보] 작가님 답변 감사합니다!
[guest]

1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5890guest4/14/202314072C# 프리랜서로 돈 벌려면 성태님 책 마스터하면 되나요? [6]
5889전예찬4/14/202311997C# 파일 복사 관련 질문 드립니다. [3]
5888정경구4/12/202312180C# 첫 환경 세팅과 관련해서 [4]
5887HAN4/12/202312135안녕하세요 파이썬도 공유 가능 할까요? [1]
5886guest4/11/202314083필요한 어셈블리만 다운로드 및 재로딩하는 방법에 관하여 [2]
5885guest4/11/202312290c#으로 드림위버같은 거 만들어볼려는데요 [6]
5884궁금이4/11/202312628부모 클래스에서 예외 발생시 힙 영역에 할당 ? [2]
5883코딩초짜4/9/20231222810c언어 usleep 에 대해서 요 [2]
5882조은현4/7/202311601선생님 안녕하세요! wpf의 성능 개선에 대해서 질문드려요! [1]파일 다운로드1
5881guest4/6/202312572static method - <에러메시지 Extension method must be defined in a non-generic static class> [4]
5880유비4/4/202311716WPF DataGrid CollectionView, IEditableCollectionView 관련 문의 [1]
5879guest4/4/202313429Async method의 에러 표시 [3]
5878guest4/3/202313776C#으로 CMOS 설정 변경가능한지요? [4]
5875guest4/2/202314032성태님 책을 완독 하고 Static [7]
5874민성4/1/202312697안녕하세요 질문 하나만 드릴깨요~ [1]
5873guest3/31/202313971제어판에서 삭제불가 MS Edge ---> 레지스트리 편집기에서도 안보임 [6]파일 다운로드1
58723/31/202313166web config 파일 확인부탁드려요 [6]
58713/31/202312504web config 파일 수정이요 [2]파일 다운로드1
5870guest3/30/202312393.NET Core SDK 삭제 시 주의 사항 [4]파일 다운로드1
5869guest3/30/202312997Dictionary의 Update 그리고 Foreach [7]
5868guest3/29/202312208Speech Recognition과 Form1 그리고 정확도 [4]파일 다운로드1
5866월급쟁이3/28/202311918cmake 크로스 컴파일 관련하여 질문이 있습니다 [1]
5865guest3/28/202311884Github Copilot과 코딩실력 향상? [1]
5864guest3/27/202313048System.NullReferenceException - 개체참조가 개체의 인스턴스... [6]파일 다운로드1
5863guest3/24/202312100이벤트 핸들러 사라짐 현상 - Button [4]
5862guest3/21/202312566세계최초 hts와 싱글스레드 [8]
1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...