List.Add(List[index])创建新对象或引用的作用

本文关键字:List 对象 引用 作用 创建 Add index 新对象 | 更新日期: 2023-09-27 18:20:45

好的,所以我有一个List<string[][]> myList来存储一组复杂的字符串。每次需要一个新的分支时,我都需要将列表中的所有元素添加到它自己中。

这就是我现在正在做的

 for (int k = 0; k < (count); k++)
 {
     myList.Add(myList[k]);
 }

但是当我通过执行List[index].SetValue(value, index)来修改其中一个列表元素时该索引处列表中的所有列表元素都将更改!

知道为什么吗?我猜这是因为myList.Add(myList[k])正在创建一个引用,所以基本上,我如何将其创建为一个新的Object?

List.Add(List[index])创建新对象或引用的作用

所以这就是我最终要做的。。。如果你知道的话,请建议一个更好的方法。

for (int k = 0; k < (count); k++)
 {
     myList.Add((string[][])myList[k].Clone());
 }

还有别的办法吗?不必遍历每个列表成员?