首页 > 解决方案 > 如何在 C# 中实现 Array.Copy

问题描述

我需要在一个函数中实现 Array.Copy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length)。

它得到的数组是一个 char[] 数组,这是我的实现,但它不起作用:

private char[] ArrayCopier(char[] chars, int startIndex, int length)
        {
            char[] NewArray = new char[length];
            int index = 0;

            for (int i = startIndex; i < length; i++)
            {
                NewArray[index] = chars[i];
            }

            return NewArray;
        }

标签: c#arrayscopy

解决方案


在你的 for 循环中,你需要 index++; 否则它将把每个字符放在新数组的第一个位置。

另外,我会检查您是否超出了源数组的范围。

所以:

private char[] ArrayCopier(char[] chars, int startIndex, int length)
        {
            char[] NewArray = new char[length];
            int index = 0;

            for (int i = startIndex; (i < length)&&(i<chars.length); i++)
            {
                NewArray[index] = chars[i];
                index++;

            }

            return NewArray;
        }


推荐阅读