C# 列表添加范围 - 它是否复制通过引用添加的项



说,我有 3 个列表

List<int> l1
List<int> l1,l2,l3

所有 3 个列表都包含许多项目我想将它们全部添加到一个列表中

List<int> finalList
finalList.AddRange(l1) , similarly for l2 and l3.

在执行finalList.AddRange时,它是从 l1,l2,l3 复制项目还是仅引用这些项目?如果它复制,我想避免 AddRange 以节省内存,因为列表很大。

如果您希望复制引用而不是数据将整数列表包装到如下所示的类中:

    public class ItemsList
    {
        public List<int> ListOfInts {get; set;}
        public ItemsList()
        {
            ListOfInts = new List<int>();
        }
    }

然后像下面这样添加它们:

        ItemsList l1 = new ItemsList();
        l1.ListOfInts = new List<int> { 1, 2, 3, 4, 5, 6 };//or whatever data inside
        //same for l2, l3
        List<ItemsList> finalList = new List<ItemsList>();
        finalList.Add(l1);//Your adding references to ItemsList class 

希望这是有用的。

相关内容

  • 没有找到相关文章

最新更新