我写了一个返回树的所有节点的函数,调试的时候报错:集合已修改,可能无法执行枚举操作,谁能高告诉我错在哪里了

esft 2008-07-22 12:48:27
private TreeNodeCollection GetAllNode(TreeNodeCollection tnc, TreeNodeCollection tncALL)
{
foreach (TreeNode tn in tnc)
{
tncALL.Add(tn);
if (tn.ChildNodes.Count > 0)
{
GetAllNode(tn.ChildNodes, tncALL);
}
}
return tncALL;
}

protected void btnSelectAll_Click(object sender, EventArgs e)
{
TreeNodeCollection tncAll=new TreeNodeCollection();
int a = GetAllNode(TreeView1.Nodes, tncAll).Count;
}
...全文
92 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
moonsliver 2008-07-28
  • 打赏
  • 举报
回复
。。。那里不清楚?
因为这个东东是引用类型的,所以会指向同一个内存地址。。所以原来那个对象不能修改的。。。
上课去。。晚上在说哈。。。
esft 2008-07-28
  • 打赏
  • 举报
回复
还是不很清楚...
esft 2008-07-22
  • 打赏
  • 举报
回复
不太明白1楼的意思,能说详细点吗
kkun_3yue3 2008-07-22
  • 打赏
  • 举报
回复
建个副本,不要修改原来的TreeNodeCollect
moonsliver 2008-07-22
  • 打赏
  • 举报
回复
private TreeNodeCollection GetAllNode(TreeNodeCollection tnc, TreeNodeCollection tncALL)
中的方法内容修改为:

TreeNode[] tr = new TreeNode[tnc.Count];

tnc.CopyTo(tr, 0);

foreach (TreeNode tn in tr)
{
tncALL.Add(tn);
if (tn.ChildNodes.Count > 0)
{
GetAllNode(tn.ChildNodes, tncALL);
}
}
return tncALL;
内容概要:本文详细介绍了名为MoSca的系统,该系统旨在从单目随意拍摄的视频中重建和合成动态场景的新视角。MoSca通过4D Motion Scaffolds(运动支架)将视频数据转化为紧凑平滑编码的Motion Scaffold表示,并将场景几何和外观与变形场解耦,通过斯融合进行优化。系统还解决了相机焦距和姿态的问题,无需额外的姿态估计工具。文章不仅提供了系统的理论背景,还给出了基于PyTorch的简化实现代码,涵盖MotionScaffold、GaussianFusion、MoScaSystem等核心组件。此外,文中深入探讨了ARAP变形模型、2D先验到3D的提升、动态斯表示、相机参数估计等关键技术,并提出了完整的训练流程和性能优化技巧。 适用人群:具备一定计算机视觉和深度学习基础的研究人员和工程师,特别是对动态场景重建和新视角合成感兴趣的从业者。 使用场景及目标:①从单目视频中重建动态场景的新视角;②研究和实现基于4D Motion Scaffolds的动态场景表示方法;③探索如何利用预训练视觉模型的先验知识提升3D重建质量;④开发效的动态场景渲染和优化算法。 其他说明:本文提供了详细的代码实现,包括简化版和深入扩展的技术细节。阅读者可以通过代码实践加深对MoSca系统的理解,并根据具体应用场景调整和扩展各个模块。此外,文中还强调了物理启发的正则化项和多模态先验融合的重要性,帮助实现更合理的变形和更质量的渲染效果。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧