我有一个具有以下结构的对象:(伪代码)
class Client
{
- int ID
- int? ParentID
- string Name
- datetime CreateDate
- int ACClientID
- List <Client> Clients }
我想使用递归 foreach 遍历整个嵌套结构,将 ALL 的 ACClientID 设置为一个值。
我知道 foreach 中的枚举器是不可变的,因此以下内容不起作用:
private static bool AssignToChildren(ref ATBusiness.Objects.Client client, int ACClientID)
{
client.ACClientID = ACClientID;
foreach (ATBusiness.Objects.Client child in client.Clients)
{
AssignToChildren(ref child, ACClientID);
}
}
实现我的目标最有效的方法是什么?
PS:我不会在结构中添加或删除,只是为每个嵌套的 Client 对象设置一个属性。
[编辑] 我看过在“foreach”循环中修改列表的最佳方法是什么?但它没有为我提供我需要的答案。