c# - 如何通过移位将字节插入数组?
问题描述
我有一个字节数组,例如:
{0,1,2,3,4,5,6,7,8,9}
我想将较小的数组插入:
我要在原始数组的第三个索引之后插入的数组:
{11,11,11}
所以最终的数组应该是这样的:
{0,1,2,3,11,11,11,4,5,6,7,8,9}
如您所见,我需要保留数组的原始值,将它们向左移动,然后用新数组代替它。我正在研究 Array.Copy() 但它覆盖了原始值,而不是移动它们
解决方案
您可以尝试使用Linq查询并将 array
结果分配回它:
using System.Linq;
...
int[] array = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] insert = new int[] {11, 11, 11};
array = array
.Take(4)
.Concat(insert)
.Concat(array.Skip(4))
.ToArray();
如果您正在寻找低级 Array
方法:
int[] array = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] insert = new int[] { 11, 11, 11 };
int at = 4;
Array.Resize<int>(ref array, array.Length + insert.Length);
Array.Copy(array, at, array, at + insert.Length, array.Length - at - insert.Length);
Array.Copy(insert, 0, array, at, insert.Length);
推荐阅读
- php - 使用laravel连接被拒绝上传PDF文件的问题
- json - 在 Spark 中过滤有效和无效记录
- vba - 添加图片“下边距”
- authentication - Microsoft 文档示例中有关 SignalR 核心身份验证的未定义变量
- php - 如何在 Zend Expressive 3 中的 Handler 之外获取 Request 对象
- c - 使用带有两个单独文件的函数
- ansible - 我们可以在 ansible 中执行 PLSQL 程序吗?如果可以,怎么做?
- docker - 作为持续集成的一部分管理多个 helm 子图
- azureservicebus - 无法从服务总线资源管理器连接到事件 HUB
- c++ - OCCI 19.3.0:createConnection 与 OCCIUTF16 一起崩溃