gpt4 book ai didi

c# - SortedDictionary : check if contents equal to another SortedDictionary?

转载 作者:行者123 更新时间:2023-11-30 15:10:13 24 4
gpt4 key购买 nike

只是想知道:如果我有两个 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( );

单个键值对的散列码对于两个排序的字典是相同的,即使添加值的顺序不同。这很好。所以我错过了一个步骤:如何从所有哈希码中获取一个唯一的哈希码?

最佳答案

否,正在检查 GetHashCode即使 SortedDictionary<,> 也不够覆盖它 - 我不相信它会这样做。

据我所知,您确实必须循环检查所有键和值。从根本上说,这就是任何 解决方案必须要做的事情。您还应该检查所涉及的比较函数是否也相同...否则字典并不是真正等同的。

关于c# - SortedDictionary<TKey, TValue> : check if contents equal to another SortedDictionary?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3492411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com