当前位置:  开发笔记 > 编程语言 > 正文

如何获取通用列表中的比较项目

如何解决《如何获取通用列表中的比较项目》经验,为你挑选了1个好方法。

我有一个实现IComparable的自定义类.该类存储在通用列表中.我现在需要与列表进行比较,以查看哪些对象在列表A中但不在列表B中.

我认为最简单的方法是迭代列表B并执行A.contains().

我不知道如何使用我的CompareTo()(或我可以覆盖的其他方法,以便我可以说它是否包含某个对象).我可能是错的,但据我所知,包含检查对象实际上是否相同(即指向内存中的相同位置).

有人可以帮帮我吗?



1> Konrad Rudol..:

你为什么不直接覆盖Equals你的类的方法与意义一致CompareTo(other) == 0?这是最简单的方式,也是最惯用的方式,因为正如您所注意到的那样,Contains比较平等而非使用CompareTo.但是,这项检查是通过Equals.它并不会检查对象是否指向同一个内存位置.

/编辑:此外,如果您使用的是.NET 3.5,则可以使用Contains接受IEqualityComparer参数的重载.您可以使用它来提供实现类类型的自定义相等关系的类.但是,我认为第一种方法更适合您的情况.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有