2014-04-08 3 views
-1

사전의 기능을 원하지만 각 키에 대해 여러 값을 저장하려고합니다. .NET/C#에서 어떻게이 작업을 수행 할 수 있습니까? 이 시나리오를 지원하는 모든 기본 제공 컬렉션이 있습니까?각 키에 대해 여러 값이있는 사전?

다음 작업을 수행 할 경우 : 그런 다음 3 개 주문을 반환해야 다음 실행

collection.Add("key1", new Order(1)); 
collection.Add("key1", new Order(2)); 
collection.Add("key1", new Order(3)); 
collection.Add("key2", new Order(4)); 

.

collection["key1"]; 
+0

http://stackoverflow.com/questions/2101069/c-sharp-dictionary -one-key-many-values ​​ – Sajeetharan

+1

이미 주문 모음과 키가 있다면 'ToLookup'을 사용하여 원하는 것을 정확하게 반환 할 수 있습니다. http://stackoverflow.com/a/1403499/284240 –

+0

실제로, 조회는 내 문제를 해결했습니다. 감사. –

답변

7

간단한 : 키 요구에 따라 주문의 수를 변수로하는 경우 사용 Dictionary<string,List<Order>>

1

당신은,이 목적을 위해 목록을 사용할 수 있습니다.

collection.Add("key1"), new List<order>(){new Order(1), new Order(2)}); 
1

귀하의 사전의 가치에 맞게 목록, 세트 또는 사전을 사용하는 것이 좋습니다.

예를 들어, 당신은 할 수 있습니다

Dictionary<string, List<string>> 
1

당신은 다른 방법으로 이것에 대해 생각해야한다. 사전은과 같이, 단지 하나의 일이 아니라 주문의 목록을 저장할 수 :

var collection = Dictionary<string,List<Order>>(); 

collection.Add("key1", new List<Order>(new { new Order(1), new Order(2), new Order(3) }); 
collection.Add("key2", new Order(4)); 
0

을 시도해보십시오이

Dictionary<string,order[] order> dict = new Dictionary<string,order[] order>(); 

    how to access : 

    order[] orderArray = dict["key1"]; 
    order order1 = orderArray[1] ; 
    order order2 = orderArray[2] ; 

    and goes on... 
관련 문제