【发布时间】:2013-01-29 00:54:24
【问题描述】:
我有一个列表,其中包含 X 类的许多对象。
我通过clone 函数添加了一个对象,它获得了自己的索引,但如果我使用克隆添加了一个对象,该对象将接收与第一个克隆相同的索引。
这里有一些代码:
public void AddCopyObj(List<x> MyList, int Idx)
{
x AddCloneObj=MyList[Idx].Clone();
MyList.Insert(Idx+1,AddCloneObj)
}
public List<int> GetAllIndexs(List<x> MyList)
{
List<int> IndexList = new List<int>();
foreach(x myXvar in MyList)
{
IndexList.add(MyList.IndexOf(myXvar));
}
return IndexList ;
}
例如:如果我有 10 个对象,其中一个我做了两次克隆,我将有 12 个对象并且两个克隆的索引相同(它们不在同一个索引上,函数IndexOf返回相同的)
我能做什么?
编辑:
public x Clone()
{
x clone = new x(Int32.Parse(this.Name.Split(new char[1] { ' ' })[1]) + 1);
clone.Copy(this);
return clone;
}
【问题讨论】:
-
请展示
x.Clone()的实现。 -
是的,你是否也为 X 实现了 IEquatable?
-
@hodaya 代码示例看起来有点奇怪,这段代码的最终目标是什么?我觉得可能有更简单的方法可以满足您的要求。
-
这不是我的代码,所以他们把它带给我,我无法更改。 (仅限使用)
-
X 类是否实现了 IEquatable?