gacar Ответов: 1

Как изменить выбранный элемент с помощью условия if в linq?


У меня есть байтовый массив
напр.
Dim ArrayBytes = {0, 5, 200, 95, 6, 11, 100, 8, 120, 0, 0, .........}

Я хочу, чтобы весь выбранный элемент имел три числа в виде строки (например, 5 > "005", 93 > "093", 0 > "000")
если выбранный элемент содержит одно число, я хочу добавить перед байтом "00" (например, "005")
если выбранный элемент содержит два числа, я хочу добавить перед байтом "0" (например, "095")

Что я уже пробовал:

Dim NewBytes2 As New List(Of String)(ArrayBytes.GetRange(0, 10).Where(Function(x) If CStr(x).lenght = 1 Then   x =  "00" & CStr(x) ElseIf CStr(x).lenght = 2 Then   x =  "0" & CStr(x) end if)

G3Coder

Вот что вам нужно: https://docs.microsoft.com/en-us/dotnet/standard/base-types/how-to-pad-a-number-with-leading-zeros -что ?

gacar

Да, это касается моего вопроса. Спасибо за ваш комментарий.

1 Ответов

Рейтинг:
12

OriginalGriff

Попробуй:

Dim arrayBytes As Byte() = New Byte() {0, 5, 200, 95, 6, 11, 100, 8, 120, 0, 0}
Dim withZeros As String() = arrayBytes.[Select](Function(b) b.ToString("000")).ToArray()


Bryian Tan

милый ++ :)

gacar

Спасибо. Это работает

gacar

И последнее, можно ли натянуть веревку? (не строковый массив())

OriginalGriff

Что - именно - вам нужно в этой цепочке?

gacar

Да. Но все равно спасибо. Я нашел решение от stackoverflow.
Dim withZeros = arrayBytes.Выберите(функция(b) b.ToString("000")).Функция ((х, г) х &амп; ", " &усилителя; г)