我有以下内容:
public class Item
{
public Item()
{
}
public string Name {get; set;}
}
public static class Extension
{
public static Item Modify(this Item itm)
{
itm.Name = "Changed";
return itm;
}
}
然后在我的代码中我实例化一个List<Item>
并添加10个项目。
List<Item> items = new List<Item>(); // contains 10 items
.....
如果现在我想迭代我的列表,并且对于每个项目,我调用扩展方法并修改它的名称属性,如何更新items
列表中的项目?
foreach (Item itm in items)
{
Item changedItem = itm.Modify();
// update item in items list
}
答案 0 :(得分:1)
由于您的方法会返回与其修改的item
相同的foreach
,因此您的items
循环已经完成了您想要的操作。
您可以生成一个新列表并重新分配items = items.Select(Modify).ToList();
以获得更短的代码:
{{1}}