2016-06-27 5 views
0

사전, < 문자열, 객체>에 문자열과 사전 < 문자열,> 매핑이 있습니다. 내부 사전에 키 값 쌍을 추가하는 방법 < string, int>?사전의 사전에 키 값 쌍을 추가합니다.

Dictionary <string,object> dict = new Dictionary <string,object>(); 
Dictionary <string,int> insideDict = new Dictionary <string,int>(); 
// ad some values in insideDict 
dict.Add("blah",insideDict); 

이제 dict에는 문자열로 매핑 된 사전이 있습니다. 이제 개별적으로 값을 innerDict에 추가하고 싶습니다. 시도했습니다

dict["blah"].Add(); 

어디로 가고 있습니까?

+0

@GiladGreen가 추가되었습니다. – nighthowler

+0

내 대답과 비교하십시오. 상단 .Add 앞에 추가 한 주석이 올바르지 않습니다.이 줄은 키 "blah"및 insideDict 값을 갖는 항목을 외부 사전에 추가합니다. 두 번째 .Add - 해당 함수에 매개 변수를 지정해야합니다. 다른 키와 값 (내부 사전 용)이 필요합니다. –

+0

@GiladGreen이 주석은 innerDict에 대한 키 값 쌍을 추가하는 것을 의미하는 두 번째 문에 대한 것입니다. – nighthowler

답변

2

당신은 이미 당신의 코멘트 당 내부 사전 다음

 Dictionary<string, object> dict = new Dictionary<string, object>(); 
     Dictionary<string, int> innerdict = new Dictionary<string, int>(); 
     dict.Add("1", innerdict); // added to outer dictionary 
     string key = "1"; 
     ((Dictionary<string, int>)dict[key]).Add("100", 100); // added to inner dictionary 

을 정의한 경우

 Dictionary<string, object> dict = new Dictionary<string, object>(); 
     dict.Add("1", new Dictionary<string, int>()); 

가 (OR)이 시도 아래처럼 뭔가 어딘가

을 망쳐

당신은 아래 라인의 원인이 아니야 whe 외부 사전 값이 object이므로 내부 사전 값을 Dictionary<string, int>으로 캐스팅하는 것을 잊었습니다. 오히려 강력한 형식으로 선언 된 외부 사전을 가져야합니다.

dict.Add("blah",insideDict); //forgot casting here 
+0

innerDict에 이미 일부 값이있는 innerDict에 새 키 값 쌍을 추가 할 수 있기를 원합니다. – nighthowler

+0

@vishallc, 도움이 될 경우 답변 편집을 참조하십시오. – Rahul

+0

고마워. 나도 이걸 시도했지만 어딘가 망쳤다. – nighthowler

0
Dictionary<string, Dictionary<string,TValue>> dic = new Dictionary<string, Dictionary<string,TValue>>(); 

TValue를 값 유형으로 바꿉니다.

3

다음과 같은 것이 있습니까?

 Dictionary<string, Dictionary<string, int>> collection = new Dictionary<string, Dictionary<string, int>>(); 

     collection.Add("some key", new Dictionary<string, int>()); 
     collection["some key"].Add("inner key", 0); 
+0

원합니다. 새로운 키 값 쌍을 innerDict에 추가 할 수 있습니다. – nighthowler

+0

내 세 번째 줄처럼. 내가 콜렉션 [ "some key"]를했을 때 그 키의 값에 대한 참조를 얻었습니다. 이것은 int 사전에 문자열입니다. 그리고 나서 .Add ("some other key", 2); –

관련 문제