Использование G3nt_M3caj LINQ может быть ... э ... привлекательным для любителей LINQ, но это ужасно неэффективно. LINQ - это молоток; не все - гвоздь.
Эта примерно в 3 раза быстрее, чем версия LINQ:
Dim str As String = "70033023311330000000004195081460"
Dim byt(str.Length/2) as Byte
For i = 0 to str.Length - 1 Step 2
byt(i/2) = Convert.ToByte(str.Substring(i, 2))
Next i
И эта, которая все делает с математикой и не делает ничего нового струнная обработка вообще чуть менее 3 раз быстрее, чем указанная выше (что делает ее примерно в 9 раз быстрее, чем версия LINQ):
Dim str As String = "70033023311330000000004195081460"
Dim byt(str.Length / 2) As Byte
For i = 0 To str.Length - 1
If i Mod 2 = 0 Then
byt(i / 2) = (Convert.ToByte(str(i)) - &H30) * &HA
Else
byt(i / 2) += Convert.ToByte(str(i)) - &H30
End If
Next i
Из двух я предпочитаю длинную версию, потому что ее легче читать и работать из того, что происходит - еще одно преимущество цикловых подходов перед подходом LINQ