创建字符串列表的精确副本
本文关键字:副本 字符串 列表 创建 | 更新日期: 2023-09-27 18:02:13
我可以在c#中创建一个列表的精确副本吗?
List<string> addedAttachments = new List<string>();
addedAttachments = (List<string>)HttpContext.Current.Session["UserFeedbackImage"];
List<string> tempList = addedAttachments;
以不同的顺序存储tempList
谢谢
您只将第一个列表addadAttachments
的引用赋值给一个新变量,但不创建新列表。
创建一个新列表只需调用
List<string> tempList = new List<string>(addedAttachments);
列表中字符串的顺序保持不变。
但请注意,这只适用于不可变类型,如string
。对于复杂可变对象的列表,您可以将相同的对象添加到新列表中,因此如果您更改旧列表中对象的属性,"新列表中的对象"也会更改(它是更改的对象)。因此,您可能还需要复制对象。
创建一个复制, 尝试Linq :
List<string> tempList = addedAttachments.ToList();
既然你有一个List<string>
和字符串是不可变的,你可以这样做:
List<string> tempList = addedAttachments.ToList();
如果你的列表中有一个自定义对象,那么你应该寻找克隆。