C# ArrayList - TrimToSize() 方法

C# ArrayList TrimToSize() 方法用于将容量设置为 ArrayList 中实际元素的数量。

如果没有新元素添加到集合中,此方法可以减少集合的内存开销。

此方法的复杂度为 O(n),其中 n 是元素的数量。

语法

以下是 C# ArrayList TrimToSize() 方法的语法 -

public virtual void TrimToSize();

参数

此方法不接受任何参数。

返回值

此方法不返回任何值。

示例 1:演示 TrimToSize() 方法的使用

以下是 TrimToSize() 方法的基本示例,用于演示如何使用此方法 -

using System;
using System.Collections;

class Example {

   // Main method
   public static void Main() {
   
      // 创建并初始化新的 ArrayList
      ArrayList mylist = new ArrayList {
         "Hi",
         "tutorialspoint",
         "India",
         "Learn",
         "programming",
         "here"
      };
   
      // 修剪前 ArrayList 的大小
      Console.WriteLine("Before trimming the capacity is: {0}", mylist.Capacity);
   
      mylist.TrimToSize();
   
      // 修剪后 ArrayList 的大小
      Console.WriteLine("After trimming the capacity is: {0}", mylist.Capacity);
   }
}

输出

以下是输出 -

Before trimming the capacity is: 8
After trimming the capacity is: 6

示例 2:调整 ArrayList 的大小

在此示例中,我们创建一个指定大小的 ArrayList。然后使用 TrimToSize() 方法将容量设置为 ArrayList 中元素的实际数量 -

using System;
using System.Collections;
class Program
{
   static void Main()
   {
      // 创建具有初始容量的 ArrayList
      ArrayList myList = new ArrayList(10) { 1, 2, 3, 4, 5 };

      Console.WriteLine($"Capacity before TrimToSize: {myList.Capacity}");
      Console.WriteLine($"Count: {myList.Count}");

      // 修剪 ArrayList 以适应实际元素数量
      myList.TrimToSize();

      Console.WriteLine($"Capacity after TrimToSize: {myList.Capacity}");
   }
}

输出

以下是输出 -

Capacity before TrimToSize: 10
Count: 5
Capacity after TrimToSize: 5

示例 3:删除元素后进行修剪

此示例展示了 TrimToSize() 方法在从 ArrayList 中删除元素后如何发挥作用 -

using System;
using System.Collections;
class Example
{
   static void Main()
   {
      ArrayList list = new ArrayList() { 10, 20, 30, 40, 50, 60, 70, 80 };
      
      Console.WriteLine($"Capacity before removing elements: {list.Capacity}");
      Console.WriteLine($"Count: {list.Count}");
      
      // 删除元素
      list.RemoveRange(2, 4);
      Console.WriteLine($"Capacity before TrimToSize: {list.Capacity}");
      Console.WriteLine($"Count after removal: {list.Count}");
      
      // 修剪列表以容纳剩余元素
      list.TrimToSize();
      Console.WriteLine($"Capacity after TrimToSize: {list.Capacity}");
   }
}

输出

以下是输出 -

Capacity before removing elements: 8
Count: 8
Capacity before TrimToSize: 8
Count after removal: 4
Capacity after TrimToSize: 4

示例 4:动态 TrimToSize 用法

此示例展示了如何动态添加多个元素、删除一些元素,然后修剪 ArrayList 以释放未使用的内存 -

using System;
using System.Collections;

class Example
{
   static void Main()
   {
      ArrayList numbers = new ArrayList();
      for (int i = 1; i <= 8; i++)
      {
          numbers.Add(i);
      }
      
      Console.WriteLine($"Capacity before removing elements: {numbers.Capacity}");
      Console.WriteLine($"Count before removing elements: {numbers.Count}");
      
      // 删除一些元素
      numbers.RemoveRange(5, 2);
      
      Console.WriteLine($"Capacity before TrimToSize: {numbers.Capacity}");
      Console.WriteLine($"Count after removal: {numbers.Count}");
      
      // 修剪 ArrayList 以释放未使用的内存
      numbers.TrimToSize();
      
      Console.WriteLine($"Capacity after TrimToSize: {numbers.Capacity}");
   }
}

输出

以下是输出 -

Capacity before removing elements: 8
Count before removing elements: 8
Capacity before TrimToSize: 8
Count after removal: 6
Capacity after TrimToSize: 6