У меня есть строковый массив с именем "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); 

Не знаю, что делать после этого.

2
Mishty 1 Дек 2018 в 14:24

1 ответ

Лучший ответ

Это можно сделать намного проще с помощью 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];
3
Ousmane D. 1 Дек 2018 в 13:10