首页 > 解决方案 > 将字符串字节数组内容复制到另一个数组,并将前缀 0 复制到 C# 中的单个数字

问题描述

我有一个名为“string_array_packet”的字符串数组,其中包含

FA,11,1,4,90,6C,E7,72,0,0,0,8,80,0,8,80,7B,

现在我需要复制数组的第一个和最后一个索引之间的内容并将其存储在另一个数组中,然后需要在单个数字前加上 0

11,1,4,90,6C,E7,72,0,0,0,8,80,0,8,80,

到目前为止我所做的是

var sourceStartIndex = 1;
var destinationLength = string_array_packet.Length - 2;
Console.WriteLine(string_array_packet.Length);
Console.WriteLine(destinationLength);
var destinationStartIndex = 0;
var destination = new string[destinationLength];
Array.Copy(string_array_packet, sourceStartIndex, 
    destination, destinationStartIndex, destinationLength); 

不知道在此之后如何进行。

标签: c#arraysstring

解决方案


使用 Linq 可以更轻松地完成此操作(using System.Linq必需):

var sourceStartIndex = 1;
var destinationLength = string_array_packet.Length - 2;

var strings = string_array_packet.Skip(sourceStartIndex)
                                 .Select(x => x.Length == 1 ? "0" + x :x)
                                 .Take(destinationLength)
                                 .ToArray();

或者,如果您不熟悉 Enumerable 方法,请添加以下命令式方法来完成您的代码:

for (int i = 0; i < destination.Length; i++)
    if (destination[i].Length == 1)
        destination[i] = "0" + destination[i];

推荐阅读