2011-02-09 2 views

답변

3

당신이하고 싶은 것은 집합체를 가져 와서 크기가 카운트와 같은지 확인하는 것입니다. 당신은 차이를 만들 수 있지만 그때 당신은 두 가지 방법으로해야 할 것입니다. 이 쉽게 Linq를 확장 방법으로 수행 할 수 있습니다,하지만 당신은 해시 테이블을 사용하고 있기 때문에 당신이 캐스트를 사용해야합니다()는 IEnumerable로 얻을 수 :

 var table1 = new Hashtable {{"A", 1}, {"B", 2}, {"C", 3}}; 
     var table2 = new Hashtable {{"B", 2}, {"A", 1}, {"C", 3}}; 

     bool same = table1.Cast<DictionaryEntry>().Union(table2.Cast<DictionaryEntry>()).Count() == table1.Count; 

     Console.WriteLine("Same = " + same); 

나는 일반적 유형의 안전을 얻기 위해 해시 테이블을 통해 사전을 권장하지만, 캐스트 <>()를 사용하면 이전 Hashtable에서 찾은 Linq 항목을 사용할 수 있습니다.

3

내가 해시 테이블의 동일한 방법을 시도했지만 해시 테이블에 두 개의 참조가 동일한 있는지 확인하기 위해 참조 비교를 할 것입니다

근무하지. 그것은 당신이 원하는 것이 아닙니다.

shoul 나는 foreach로 모든 항목을 확인합니까?

예. 두 개의 해시 테이블의 항목 수가 같고 첫 번째 키/값 쌍이 모두 초 안에 있는지 확인하십시오.

+0

양방향을 확인해야합니까? 두 해시 테이블이 동일한 수의 키를 가지고 있고 첫 번째의 모든 것이 초에 있고 키/값 쌍이 동일하다는 것을 검증하는 것으로 충분하지 않습니까? –

+0

@Joel Rondeau : 네 말이 맞아. – jason