Hashtable A 等于 HashtAble B 控制

发布于 2024-10-16 22:35:11 字数 126 浏览 2 评论 0原文

C# 中的你好 我有两个哈希表对象,其键/值对相同 我想检查两个哈希表键/值对是否相等。

我尝试了哈希表的 equal 方法,但没有成功,

我应该用 foreach 检查所有项目吗?

谢谢

Hallo in c#
i got two hashtable object of which key/value pair is same
and i want to check if that two hashtable key/value pairs are equal..

i tried up hashtable's equal method but not worked

should i check all items with foreach?

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凶凌 2024-10-23 22:35:11

您想要做的是采用集合并集并查看大小是否与计数相同。你可以做一些不同的事情,但随后你就必须两种方式都做。这些可以使用 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 而不是 Hashtable 来获得类型安全性,但是 Cast<>()让你可以使用 Linq 的东西,只需通过旧的 Hashtable 找到即可。

What you want to do is take a set union and see if the size is the same as the count. You could do a set difference but then you'd have to do it both ways. These can easily be done with Linq extension methods, but since you're using Hashtable you have to use Cast() to get it to 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);

I typically recommend Dictionary over Hashtable to get the type safety, but the Cast<>() lets you use the Linq stuff just find with the old Hashtable.

甜是你 2024-10-23 22:35:11

我尝试了哈希表的 equal 方法,但没有成功

这将进行引用比较,看看对哈希表的两个引用是否相同。那不是你想要的。

我应该用 foreach 检查所有项目吗?

是的。检查两个哈希表是否具有相同数量的项目,并且第一个哈希表中的所有键/值对都在第二个哈希表中。

i tried up hashtable's equal method but not worked

This will do a reference comparison to see if the two references to hashtables are the same. That is not what you want.

shoul i check all items with foreach?

Yes. Check that the two hashtables have the same number of items, and that all the key/value pairs in the first are in the second.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文