c# - 如何在 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;
}
解决方案
在你的 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;
}
推荐阅读
- javascript - 使用 SVG 时 ScrollIntoView 在 Firefox 中出现问题
- python - Celery + RabbitMQ - 使用 Celery 进行简单的消息传递
- batch-file - 如何在批处理文件中转义波浪号 (~) 以将其替换为不同的字符?
- android - 在 popUpTo 的帮助下使用导航组件导航片段
- java - 如何从 XSD 泛型获取数据类型
- php - 尝试使用 PHP 7.2 连接到 Oracle 数据库
- java - Spring会在其他bean的@PostConstruct之后使用@DependsOn创建一个bean吗?
- oracle - 从 Oracle Forms 10g WebUtil 执行 SUSE Linux 命令
- flutter - 关闭 Drawer 后重新聚焦 TextField
- javascript - 如何循环遍历对象数组并将键值对添加到基于重复条目的另一个对象数组中