То, что вы хотите сделать, это взять объединение множеств и посмотреть, равен ли размер количеству. Вы можете сделать разницу между сетами, но тогда вам придется сделать это обоими способами. Это легко сделать с помощью методов расширения Linq, но поскольку вы используете Hashtable, вы должны использовать Cast (), чтобы получить его в 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);
Обычно я рекомендую Dictionary over Hashtable, чтобы получить безопасность типов, но Cast <> () позволяет использовать вещи Linq, которые можно найти только в старой Hashtable.