方法一:
List<string> t = new List<string>(); //original
List<string> t2 = new List<string>(t.ToArray()); // copy of t
方法二:
List<string> list1 = new List<string>();
List<string> list2 = new List<string>();
// This will copy all the items from list 1 to list 2
list1.ForEach(i => list2.Add(i));
说明:一般情况下使用=赋值即可实现相关操作,但是在使用list遍历的时候,由于list使用=赋值是引用方式,所以这种场景就不适合:
List<T> list = new App().GetList(keyword);
List<T> queryList = list;
foreach (T item in queryList)
{
if (!string.IsNullOrEmpty(item.F_ParentId) &amp;&amp; item.F_ParentId != "0")
{
if (list.Count(m => m.F_Id == item.F_ParentId) <= 0)
{
ServicingItemEntity parent = new ServicingItemApp().GetForm(item.F_ParentId);
list.Add(parent);
}
}
}
此时,会报“集合已修改;可能无法执行枚举操作”的错误。需要使用List复制的方法:
List<T> list = new App().GetList(keyword);
List<T> queryList = new List<T>(list.ToArray());
foreach (T item in queryList)
{
if (!string.IsNullOrEmpty(item.F_ParentId) &amp;amp;&amp;amp; item.F_ParentId != "0")
{
if (list.Count(m => m.F_Id == item.F_ParentId) <= 0)
{
ServicingItemEntity parent = new ServicingItemApp().GetForm(item.F_ParentId);
list.Add(parent);
}
}
}
两者的区别在于:
将
List<T> queryList = list;
调整为了:
List<T> queryList = new List<T>(list.ToArray());