2011-03-24 4 views
0

좋은 아침, 오후 또는 밤, 단사 사전

는 .NET에서 injective Dictionary 같은 일이 있나요, 또는 적어도 어떤 방법이 나는 단사 매핑을 정의하는 Dictionary을 강제 할 수 있습니까?

대단히 감사합니다.

+1

하여 Dictionary 처럼 사용할 수 있습니까? – Tokk

+0

No ...'Dictionary Miguel

+1

오, 글쎄, 그것에 대해 생각하지 않았어 ... 잘 자신 만의 사전을 만들고 '추가'를 무시할 수 있으므로, 요소가 이미 들어 있는지 여부를 먼저 확인할 수 있습니다. – Tokk

답변

1

당신은 당신을 위해 충분히 단사되지 않습니다

public class InjectiveDictionary<T, V> : Dictionary<T, V> 
    { 
     public new void Add(T key, V value) 
     { 
      if (this.ContainsValue(value)) 
      { 
       throw new Exception("value already used"); 
      } 
      base.Add(key, value); 
     } 


    public InjectiveDictionary(Dictionary<T, V> dict) 
    { 
     foreach (var entry in dict) 
     { 
      this.Add(entry.Key, entry.Value); 
     } 
    } 

    public InjectiveDictionary() 
    { 
    } 
} 
+0

대단히 고맙겠 습니다만, 기존의 비 - 주입 사전을 매개 변수로 취하는 생성자와 함께 작동하도록 보장되어 있습니까? – Miguel

+0

생성자를 직접 작성해야합니다. 매개 변수가없는 단 하나만 있습니다. – Tokk

+0

네, 맞습니다! 고맙습니다. – Miguel