Скопируйте содержимое байтового массива String в другой массив и префикс 0 до одной цифры в C # - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть массив String с именем "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); 

Не уверен, какпродолжить после этого.

1 Ответ

0 голосов
/ 01 декабря 2018

Это можно сделать намного проще с помощью 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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...