我正在尝试遍历List
数组订阅运算符中的所有对象并更改其中的字段,然后将它们的引用存储在另一个列表中。这是我写的代码:
private List<JavaScriptEventM> getSubset(List<JavaScriptEventM> domEvents)
{
List<JavaScriptEventM> retVal = new List<JavaScriptEventM>();
for (int i = 0; i < domEvents.Count; i++)
{
JavaScriptEventM e = domEvents[i];
e.xpath = getXPathToNode(e.source , false);
retVal.Add(e);
}
return retVal;
}
此代码应该访问名为列表的所有成员domEvents
并更改其xpath
公共字段并将引用也存储在另一个列表中(称为retVal
)
我调用这个函数并传递一个其字段设置为空List
的对象。奇怪的是,函数返回后,返回的对象的字段发生了变化,但作为参数传递给该函数的原始列表保持不变。即原始列表中的对象仍将其字段设置为空。JavaScriptEventM
xpath
retVal
xpath
domEvents
xpath
当您通过数组订阅运算符访问对象时,C# 是否实际上获得了对象的克隆List
?我怎样才能一个List
一个地访问所有元素并更改它们?