(C#)Listの中身を値渡しでコピーする方法

Listの中身を別のリストにコピーしたいとき、
単純にリストを代入すると参照渡しになってしまう。

コンストラクタを使ってListの中身を値渡しをすればいい。

var list1 = new List<string>();
list1.Add("a");
var list2 = new List<string>(list1);
list2.Add("b");
Console.WriteLine(string.Join(",", list1)); // a
Console.WriteLine(string.Join(",", list2)); // a,b