Vb.net 无法将Byte()类型的值转换为Byte

Vb.net 无法将Byte()类型的值转换为Byte,vb.net,Vb.net,我需要创建一个数组(),并将两项添加到此数组中。我把这个错误作为标题。如何将值添加到byte()中 我也试过了 Dim keypair(0) = privatekey.ID Dim keypair(1) = publickey.ID 两者都不起作用。privatekey.Id是字节类型。在.NET中有许多方法可以将两个数组连接在一起。如果您想要一些替代方法,可以搜索“.NET数组连接”,并找到各种选项。但是,最简单的方法可能是使用LINQ: Dim keyPair As Byte() = pr

我需要创建一个数组(),并将两项添加到此数组中。我把这个错误作为标题。如何将值添加到byte()中

我也试过了

Dim keypair(0) = privatekey.ID
Dim keypair(1) = publickey.ID

两者都不起作用。privatekey.Id是字节类型。

在.NET中有许多方法可以将两个数组连接在一起。如果您想要一些替代方法,可以搜索“.NET数组连接”,并找到各种选项。但是,最简单的方法可能是使用LINQ:

Dim keyPair As Byte() = privatekey.ID.Concat(publickey.ID).ToArray()

注意:这是基于您在上面的注释中提出的将两个数组连接成单个一维数组的请求。虽然有时可能需要这样做,但在大多数情况下,这似乎是一个奇怪的选择。

根据错误,必须将
ID
属性键入为字节数组。那么,你想完成什么?是否希望最终结果是两个ID连接在一起的一维字节数组?或者您希望最终结果是一个二维数组(即数组列表——每个ID的数组项)?通过查看前面的问题,您似乎正在使用
NCryptoki
库。如果你看一下,你会发现它的类型是
Byte()
(一个字节数组),而不是一个
Byte
。你想用这段代码实现什么?嗨@Stevendogart,我只想得到一个带有这两个ID的一维字节数组。感谢您必须注意,Steven的代码将把所有值放在同一个数组中,而不是数组本身。因此,除非数组的大小固定,否则无法分辨数组的起点和终点。我同意@VisualIncent。虽然这会将所有数据塞进一个对象中,但这并不是“返回”两个值的理想方式。除非您知道两个ID数组的确切大小,否则您将无法分辨其中一个数组的结束位置和下一个数组的开始位置。返回多个值的典型首选方法是使用自定义类或
元组
Dim keyPair As Byte() = privatekey.ID.Concat(publickey.ID).ToArray()