C# |在数组的指定索引处复制字符串集合

原文:https://www . geesforgeks . org/c-sharp-copy-string collection-at-specific-index-of-array/

StringCollection 类是。表示字符串集合的. NET Framework 类库。在 系统中定义了 StringCollection 类。收藏.专门命名空间

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

语法:

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

参数:

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

异常:

  • ArgumentNullException : 如果数组为空。
  • argumentoutofrangerexception:如果索引小于零。
  • 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]);
        }
    }
}

输出:

未处理异常: 系统。ArgumentOutOfRangeException:值必须为> = 0。 参数名称:目标索引

参考: