我做了一个List来保存对象,然后我会读它.但即使我给List一个索引,我总是得到相同的对象结果.这是代码:
List<TempIds> treeDIds = new List<TempIds>();
TempIds tempIds = new TempIds();
foreach (ItemGroupTreeD treeD in itemTreeDColl)
{
//Idleri listeye al?yoruz daha sonra kar??la?t?rma yapmak için
tempIds.TreeDId = treeD.Id;
tempIds.TreeParentId = treeD.TreeParentId;
treeDIds.Insert(treeDIds.Count, tempIds);
//----
//E?er ilk gelen detay id ile methoda gelen id bir ise collectiona ekliyoruz.
if (tempIds.TreeDId == groupTreeDId)
{
treeDTempColl.Add(treeD);
}
else
{
//Burada kar??la?t?rma yap?yoruz.
for (int i = 0; i < treeDIds.Count; i++)
{
if (tempIds.TreeParentId == treeDIds[i].TreeDId)
{
treeDTempColl.Add(treeD);
break;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
例如:
对于第一个循环TreeDId = 3和TreeParentId = 1然后我插入索引0.第二个循环TreeDId = 2,TreeParentId = 1,然后插入索引1.当循环进入List时,我总是得到TreeDId = 2和TreeParentId = 1 ,因为最后一个循环是第二个循环.我还能做什么?
谢谢.
Pre*_*gha 11
只有一个tempIds对象.列表中的项目是相同的项目,并且其中包含最后一项.移动TempIds tempIds = new TempIds();进入循环
foreach (ItemGroupTreeD treeD in itemTreeDColl)
{
TempIds tempIds = new TempIds();
Run Code Online (Sandbox Code Playgroud)
请记住,列表不包含您添加的数据的副本.它包含对您添加的对象的引用.这样做会创建一个新对象,您可以每次插入.