C# ArrayList - GetRange() 方法

C# ArrayList 的 GetRange() 方法用于创建 ArrayList 的子集。此方法创建并返回一个包含源 ArrayList 元素子集的新 ArrayList。

语法

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

public virtual System.Collections.ArrayList GetRange(int index, int count);

参数

此方法接受以下参数 -

  • index:表示范围起始的 ArrayList 索引。
  • count:表示范围中的元素数量。

返回值

此方法返回一个 ArrayList,表示源 ArrayList 中元素的子集。

示例 1:创建元素子集

以下是 GetRange() 方法的基本示例,用于从索引 2 开始创建元素的子集,总共 3 个元素 -

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

      Console.WriteLine("Source ArrayList:");
      foreach (var item in sourceList)
      {
         Console.Write(item + " ");
      }

      // 创建元素子集
      // 从索引 2 开始,取出 3 个元素
      ArrayList subset = sourceList.GetRange(2, 3);

      Console.WriteLine("
Subset ArrayList:");
      foreach (var item in subset)
      {
         Console.Write(item + " ");
      }
   }
}

输出

以下是输出 -

Source ArrayList:
1 2 3 4 5 6 7 

Subset ArrayList:
3 4 5 

示例 2:创建混合类型元素的子集

如果 ArrayList 包含混合数据类型,GetRange() 将按原样返回子集,并保留元素的数据类型 -

using System;
using System.Collections;
class Program
{
   static void Main()
   {
      ArrayList mixedList = new ArrayList() { "Hello", 42, 'A', 3.14, "World", true };

      Console.WriteLine("Source ArrayList:");
      foreach (var item in mixedList)
      {
         Console.Write(item + " ");
      }

      // 创建元素子集
      ArrayList subset = mixedList.GetRange(1, 4);

      Console.WriteLine("Subset ArrayList:");
      foreach (var item in subset)
      {
         Console.Write(item + " ");
      }
   }
}

输出

以下是输出 -

Source ArrayList:
Hello 42 A 3.14 World True 
Subset ArrayList:
42 A 3.14 World

示例 3:尝试访问范围之外的元素

在此示例中,我们使用 GetRange() 方法尝试从 ArrayList 中检索子集。如果范围超出 ArrayList 的边界,此方法将抛出"ArgumentException"异常 -

using System;
using System.Collections;

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

      try
      {
          
         ArrayList subset = list.GetRange(3, 5); // 索引超出范围
      }
      catch (ArgumentException ex)
      {
         Console.WriteLine("Error: " + ex.Message);
      }
   }
}

输出

以下是输出 -

ERROR!
Error: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.

csharp_arraylist.html