C# ArrayList - FixedSize() 方法

C# ArrayList 的 FixedSize() 方法用于为现有 ArrayList 创建一个包装器,并固定其大小。这意味着我们可以修改(更新)ArrayList,但不能添加或删除其中的元素。

语法

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

FixedSize(System.Collections.ArrayList list);

参数

此方法接受一个需要以固定大小包装的 ArrayList。

返回值

此方法返回一个固定大小的 ArrayList 包装器。

示例 1:将 ArrayList 包装为固定大小

以下是使用 FixedSize() 方法将 ArrayList 包装为固定大小的基本示例 -

using System;
using System.Collections;
class Program
{
   static void Main()
   {
      ArrayList list = new ArrayList() { 1, 2, 3, 4, 5 };

      // 创建固定大小的包装器
      ArrayList fixedList = ArrayList.FixedSize(list);

      Console.WriteLine("Original List:");
      foreach (var item in fixedList)
      {
         Console.Write(item + " ");
      }
      Console.WriteLine();

      // 修改现有元素
      fixedList[2] = 10; 
      Console.WriteLine("After modifying an element:");
      foreach (var item in fixedList)
      {
         Console.Write(item + " ");
      }
      Console.WriteLine();
   }
}

输出

以下是输出 -

Original List:
1 2 3 4 5 
After modifying an element:
1 2 10 4 5 

示例 2:向固定大小的 ArrayList 添加元素

以下示例尝试向固定大小的 ArrayList 添加元素。因此,我们收到"collection was a fixed size(集合大小固定)"异常,因为我们无法在固定大小的 ArrayList 中添加元素 -

using System;
using System.Collections;
class Program
{
   static void Main()
   {
      ArrayList list = new ArrayList() { 1, 2, 3, 4, 5 };

      // 创建固定大小的包装器
      ArrayList fixedList = ArrayList.FixedSize(list);

      Console.WriteLine("Original List:");
      foreach (var item in fixedList)
      {
         Console.Write(item + " ");
      }
      Console.WriteLine();

      // 尝试添加元素
      try
      {
         fixedList.Add(6);
      }
      catch (NotSupportedException e)
      {
         Console.WriteLine("Exception: " + e.Message);
      }
   }
}

输出

以下是输出 -

Original List:
1 2 3 4 5 
Exception: Collection was of a fixed size.

示例 3:从固定大小的 ArrayList 中删除元素

以下示例尝试从固定大小的 ArrayList 中删除元素。因此,我们收到"集合大小固定"异常,因为我们无法从固定大小的 ArrayList 中删除元素 -

using System;
using System.Collections;

class Program
{
   static void Main()
   {
      ArrayList list = new ArrayList() { 1, 2, 3, 4, 5 };

      // 创建固定大小的包装器
      ArrayList fixedList = ArrayList.FixedSize(list);

      Console.WriteLine("Original List:");
      foreach (var item in fixedList)
      {
         Console.Write(item + " ");
      }
      Console.WriteLine();
      
      // 尝试删除一个元素
      try
      {
         fixedList.RemoveAt(2);
      }
      catch (NotSupportedException e)
      {
         Console.WriteLine("Exception: " + e.Message);
      }
   }
}

输出

以下是输出 -

Original List:
1 2 3 4 5 
Exception: Collection was of a fixed size.