我有一个有点奇怪的问题,我认为这很可能是由于我的愚蠢行为,但我(和我的团队中的其他成员)无论如何都看不到它。
我有一个对象,它包含一个我想要排序的通用列表属性。我已经为自己写了一个比较器类来做这件事,我用下面的方式调用它:
baseObject.ListOfThings.Sort(new ThingComparer())我已经调试了我的compare函数,它返回了正确的值。
但是,在排序调用之后,列表保持不变。我是不是遗漏了什么明显的东西,或者还有什么我需要做的。
非常感谢
编辑:是的,我是在做傻事,每次访问时,返回列表的属性都会从头开始重新创建列表。感谢大家的帮助,在以后寻求帮助之前,我会努力学习如何更好地检查
发布于 2009-04-03 15:27:19
你的基对象会在每次被访问时重新创建列表吗?每次有人要求我帮助解决这个问题,那都是问题所在。也许这个属性正在调用一个数据库,当它被访问时构建列表,等等。
发布于 2009-04-03 15:26:30
在我看来完全没问题。ListOfThings属性是否返回底层列表的副本?
然后,您将对该列表的一个副本进行排序,该副本随后会丢失,并且在下次调用ListOfThings时,您将获得该列表的一个新副本(按原始顺序)。
发布于 2009-04-03 15:31:56
我不知道其余的代码,但是试试下面这样的代码怎么样:
baseObject.ListOfThings.Sort(AddressOf ThingComparer) (假设您有要调用的共享函数)
https://stackoverflow.com/questions/714419
复制相似问题