这样做的正确方法是什么?
foreach(Object obj in ObjectList<Object>)
{
Object changedObject= GetInfo(obj);
obj=changedObject; //no good
obj.prop1 = changedObject.prop1; //ok?
obj.prop2 = changedObject.prop2; //ok?
better way?
}
答案 0 :(得分:6)
改为使用for循环:
for (int i = 0; i < list.Count; i++)
{
Object changedObject = GetInfo(list[i]);
list[i] = changedObject;
}
您还可以使用LINQ,如果您需要列表而不是.ToList()
,则附加IEnumerable<T>
:
var query = result.Select(o => GetInfo(o));
答案 1 :(得分:1)
我认为你最好创建一个新的对象列表,即:
var newList = new List<Object>();
foreach(Object obj in ObjectList<Object>)
{
newList.Add(GetInfo(obj));
}
然后将ObjectList
替换为newList
,或者只是从正在进行的任何操作中返回