我知道您可以给列表对象作为列表构造函数的参数,以将 1个列表复制到另一个列表。
这样,如果使用的类型是一次简单的内置操作(正是?),则可以创建一个深层副本。例如字符串类型:
List<string> testList = new List<string>();
List<string> testListCopy = new List<string>(testList );
Run Code Online (Sandbox Code Playgroud)
如果使用嵌套列表,是否可以创建深层副本?:
List<List<string>> testList = new List<List<string>>();
List<List<string>> testListCopy = new List<List<string>>(testList );
Run Code Online (Sandbox Code Playgroud)
该List<T>构造不会为你做这一点,但你可以自己用做:
List<List<string>> testList = new List<List<string>>();
List<List<string>> testListCopy = new List<List<string>>(testList.Select(x => x.ToList()));
Run Code Online (Sandbox Code Playgroud)
甚至是等效的:
List<List<string>> testListCopy = testList.Select(x => x.ToList()).ToList();
Run Code Online (Sandbox Code Playgroud)