2013-03-08 3 views
1

나는 결코 문제가 없어 질 것 같지 않습니다.정말 복잡한 컬렉션을 만들려면 어떻게해야합니까?

Dictionary<string, Dictionary<int, int>> origRes = new Dictionary<string, Dictionary<int, int>> 

을 아니면 내가 할 수있는 하나의 문자열과 두 개의 정수 값을 포함하는 컬렉션을 필요 : 지금은이 같은 사전 (정확히)를 초기화하고 싶습니다. 그리고이 모든 데이터 (문자열은 키 값이 될 수 있음)를 수집하기에 충분한 for 또는 foreach 루프가 충분합니까? 여기에 업데이트

public static Dictionary<int, int> resRequest(string requestedForm) 
     { 
      Dictionary<int, int> kp = new Dictionary<int, int>(); 
      Dictionary<string, KeyValuePair<int, int>> origRes = new Dictionary<string, KeyValuePair<int, int>>(); 
      origRes.Add("Polübiosz", new KeyValuePair<int, int>(560,310)); 
      origRes.Add("Morze", new KeyValuePair<int, int>(690, 510)); 
      origRes.Add("Caesar", new KeyValuePair<int, int>(700, 500)); 
      origRes.Add("OwnCrypt", new KeyValuePair<int, int>(830, 570)); 
      origRes.Add("Hamming", new KeyValuePair<int, int>(850, 500)); 
      origRes.Add("Kezdőkép", new KeyValuePair<int, int>(1280, 1024)); 

      foreach(KeyValuePair<string,KeyValuePair<int, int>> pair in origRes) 
      { 
       if(pair.Key==requestedForm) 
       { 
        kp.Add(pair.Value.Key,pair.Value.Value); 
       } 
      } 
      return kp; 
     } 

내 전체 방법 그리고 키와 KeyValuePair에서 값을 싶어하지만, 반환 된 사전을 포함하지 않거나 잘 모르겠지만, 호출 측에는 키 또는 값 속성 만 키와 값만 있습니다.

답변

3

문자열, int, int가 들어있는 클래스를 만들고 그와 함께 간단한 사전을 채우지 않는 이유는 무엇입니까?

그래서 대신

Dictionary<string, Dictionary<int, int>> 

해야 할 것 :

Dictionary<string, MyType> 

합니다 MyType은 같은 것입니다 :

class MyType { 
    public string KeyVal { get; set; } // optional - to match your dict key 
    public int Int1Val{ get; set; } 
    public int Int2Val{ get; set; } 
} 
관련 문제