迭代变量的Foreach和修改
本文关键字:修改 Foreach 变量 迭代 | 更新日期: 2023-09-27 18:28:31
这样做的正确方法是什么?
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?
}
使用for循环:
for (int i = 0; i < list.Count; i++)
{
Object changedObject = GetInfo(list[i]);
list[i] = changedObject;
}
如果您需要一个列表而不是IEnumerable<T>
:,您也可以使用LINQ并附加.ToList()
var query = result.Select(o => GetInfo(o));
我认为您最好创建一个新的对象列表,即:
var newList = new List<Object>();
foreach(Object obj in ObjectList<Object>)
{
newList.Add(GetInfo(obj));
}
然后用newList
替换ObjectList
,或者从您正在进行的中返回它