gpt4 book ai didi

c# - 在 foreach 循环中编辑列表

转载 作者:行者123 更新时间:2023-11-30 19:22:16 25 4
gpt4 key购买 nike

我有一个具有以下结构的对象:(伪代码)

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 对象设置一个属性。

[编辑] 我看过 What is the best way to modify a list in a 'foreach' loop?但它没有提供我需要的答案。

最佳答案

因为您从未分配给参数 client你不需要使用 ref 传递它.

因为您没有修改 List<T>对象本身,没有理由即使在枚举期间也不能修改 ACCClientID 属性。只有当您尝试篡改枚举背后的列表成员时,您才会得到异常。

关于c# - 在 foreach 循环中编辑列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1486808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com