我认为这个问题与引用类型有关,而我对这些缺乏了解......
所以我动态创建了 ASP.Net 表(如在 Web.UI.WebControls.Table 中,而不是数据库种类)这些可以有任何东西,从一行带有一个带有文本的单元格,到一系列嵌套表和控件,具体取决于客户。
我需要遍历每个 TableRow,如果满足某个条件,那么我将该行复制到第二个 Table 对象。这是代码的简化位。
Table xTblComplete = (passed in as parameter) // original & complete table
Table xTblTemp = new Table(); // gets built dynamically with specific rows
foreach (TableRow xThisRow in xTblComplete.Rows)
{
if (xThisRow.Cells.Count > 0)
{
if (certain condition met)
{
xTblTemp.Rows.Add(xThisRow);
}
}
}
我遇到困难的地方是,当我尝试将 TableRow 添加到 Table2 时,foreach(table.rows 中的行)会引发错误。我收到错误“集合已修改;枚举操作可能无法执行。”这是有道理的,因为我应该复制该表行以添加。
谁能建议这是如何完成的?我已经扫描了 MSDN 和论坛中的一般引用类型复制,但它们似乎都指向使用 ICloneable ,我相信我无法这样做,因为这不是我的课程。
我希望这是我错过的一些小而基本的东西,在此先感谢。