【发布时间】:2026-01-31 01:25:01
【问题描述】:
我有以下递归函数,用于向下搜索分层树并从列表中删除找到的对象:
private List<Tag> RemoveInvalidTags(Device device, List<Tag> tags)
{
var childDevices = device.ChildDevices.Select(c => c.ChildDevice);
foreach (var child in childDevices)
{
tags.Remove(child.Tag);
RemoveInvalidTags(child, tags);
}
return tags;
}
我希望这样做是从标签列表中删除此级别的所有子设备标签,为您的孩子递归调用该函数,然后将该列表返回到上一级。
这会通过引用传递标签列表并修改原始传递列表吗?或者我应该按照
的方式做一些事情validTags = CollectValidTags(child, tags);
并将所有返回的列表加起来?
【问题讨论】: