我有一个具有以下结构的对象:(伪代码)
class Client
{
- int ID
- int? ParentID
- string Name
- datetime CreateDate
- int ACClientID
- List <Client> Clients }
Run Code Online (Sandbox Code Playgroud)
我想使用递归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);
}
}
Run Code Online (Sandbox Code Playgroud)
实现目标的最有效方法是什么?
PS:我不会在结构中添加或删除,只是为每个嵌套的Client对象设置一个属性.
[编辑]我看过在'foreach'循环中修改列表的最佳方法是什么?但它没有为我提供我需要的答案.
Ant*_*nes 11
由于您从未分配参数client,因此无需使用它ref.
由于您没有List<T>自己修改对象,因此即使在枚举期间也无法修改ACCClientID属性.只有当您尝试篡改枚举后面的列表成员资格时才会出现异常.
| 归档时间: |
|
| 查看次数: |
1030 次 |
| 最近记录: |