📌  相关文章
📜  C#|将StringCollection复制到数组的指定索引处

📅  最后修改于: 2021-05-29 14:10:20             🧑  作者: Mango

StringCollection类是.NET Framework类库的新添加,它表示字符串的集合。 StringCollection类在System.Collections.Specialized命名空间中定义。

StringCollection.CopyTo(String [],Int32)方法用于将整个StringCollection值复制到从目标数组的指定索引处开始的一维字符串数组。

句法:

public void CopyTo (string[] array, int index);

参数:

  • array:这是一维字符串数组,是从StringCollection复制的元素的目的地。数组必须具有从零开始的索引。
  • index:它是数组中从零开始的索引,从此处开始复制。

例外情况:

  • ArgumentNullException:如果数组为null。
  • ArgumentOutOfRangeException:如果索引小于零。
  • InvalidCastException:如果无法将源StringCollection的类型强制转换为目标数组的类型。
  • ArgumentException:如果数组是多维数组,或者源StringCollection中的元素数大于从索引到目标数组末尾的可用空间。

笔记:

  • 指定的数组必须是兼容类型。
  • 此方法是O(n)运算,其中n是Count。

下面给出了一些示例,以更好地理解实现:

范例1:

// C# code to copy StringCollection to array,
// starting at the specified index of
// the target array
using System;
using System.Collections;
using System.Collections.Specialized;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // creating a StringCollection named myCol
        StringCollection myCol = new StringCollection();
  
        // creating a string array named myArr1
        String[] myArr1 = new String[] { "A", "B", "C", "D", "E" };
  
        // Copying the elements of a string
        // array to the end of the StringCollection.
        myCol.AddRange(myArr1);
  
        // creating a String array named myArr2
        String[] myArr2 = new String[myCol.Count];
  
        // Copying StringCollection to array myArr2
        // starting from index 0
        myCol.CopyTo(myArr2, 0);
  
        // Displaying elements in array myArr2
        for (int i = 0; i < myArr2.Length; i++) {
            Console.WriteLine(myArr2[i]);
        }
    }
}

输出:

A
B
C
D
E

范例2:

// C# code to copy StringCollection to array,
// starting at the specified index of
// the target array
using System;
using System.Collections;
using System.Collections.Specialized;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // creating a StringCollection named myCol
        StringCollection myCol = new StringCollection();
  
        // creating a string array named myArr1
        String[] myArr1 = new String[] {"1", "2", "3",
                                       "4", "5", "6"};
  
        // Copying the elements of a string
        // array to the end of the StringCollection.
        myCol.AddRange(myArr1);
  
        // creating a String array named myArr2
        String[] myArr2 = new String[myCol.Count];
  
        // Copying StringCollection to array myArr2
        // starting from index -1
        // This should raise exception "ArgumentOutOfRangeException"
        // as index is less than 0
        myCol.CopyTo(myArr2, -1);
  
        // Displaying elements in array myArr2
        for (int i = 0; i < myArr2.Length; i++) {
            Console.WriteLine(myArr2[i]);
        }
    }
}

输出:

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.specialized.stringcollection.copyto?view=netframework-4.7.2