【发布时间】:2018-03-22 04:19:39
【问题描述】:
只是想知道:如果我有两个 SortedDictionary 对象,找出它们的内容是否相同的最快方法是什么? 循环所有键并检查值听起来不是最好的解决方案。 只检查 GetHashCode() 就足够了吗?
编辑:我已经尝试了一下。请参阅此代码:
SortedDictionary<string, string> o1 = new SortedDictionary<string, string>( );
SortedDictionary<string, string> o2 = new SortedDictionary<string, string>( );
o1["k1"] = "v1";
o1["k2"] = "v2";
o1["k3"] = "v3";
o2["k2"] = "v2";
o2["k1"] = "v1";
o2["k3"] = "v3";
Console.WriteLine( "o1:" );
foreach ( KeyValuePair<string, string> oKeyValuePair in o1 )
{
Console.WriteLine( oKeyValuePair.GetHashCode( ) );
}
Console.WriteLine( "o2:" );
foreach ( KeyValuePair<string, string> oKeyValuePair in o2 )
{
Console.WriteLine( oKeyValuePair.GetHashCode( ) );
}
Console.ReadKey( );
各个键值对的哈希码对于两个已排序的字典都是相同的,即使添加值的顺序不同。这很好。 所以我错过了一步:如何从所有哈希码中获取一个唯一的哈希码?
【问题讨论】:
标签: c#