【发布时间】:2012-05-22 00:18:45
【问题描述】:
你好,我有一门课
class State
{
int[] some_array;
//some other members
}
现在我需要比较两个 State 对象是否相同。如果它们具有相同的some_array 与对象的其他成员无关,我定义了两个相同的状态。
现在我有一个包含数千个 State 对象的列表。如何有效地获取一个状态并通过查找找出列表中存在的另一个类似状态?
我可以将列表中每个状态元素的some_array 数组与给定的状态对象进行比较。但这需要大量计算 O(N*size of some_array)。如何以最少的计算量做到这一点?
注意:在每种情况下,除了一个数组权利之外的所有权利几乎相同。因此,查找可以深入到数组中。
【问题讨论】:
-
如果两个
some_array成员只有相同的项目,他们是否被视为相等,或者他们必须以相同的顺序拥有相同的项目?
标签: c# arrays performance list