将C#字节数组函数转换为vb.net

将C#字节数组函数转换为vb.net,c#,vb.net,type-conversion,C#,Vb.net,Type Conversion,我正在尝试转换此代码 public static byte[] NewLine(this byte[] bytes, int feeds = 1) { return bytes.AddBytes(((IEnumerable<byte>) new byte[feeds]).Select<byte, byte>((Func<byte, byte>) (x => (byte) 10)).ToArray<byte>());

我正在尝试转换此代码

public static byte[] NewLine(this byte[] bytes, int feeds = 1)
    {
      return bytes.AddBytes(((IEnumerable<byte>) new byte[feeds]).Select<byte, byte>((Func<byte, byte>) (x => (byte) 10)).ToArray<byte>());
    }
公共静态字节[]换行符(此字节[]字节,int feed=1)
{
返回bytes.AddBytes(((IEnumerable)new byte[feed])。选择((Func)(x=>(byte)10)).ToArray();
}
在线转换器生产这种产品

<System.Runtime.CompilerServices.Extension> _
    Public Function NewLine(ByVal bytes() As Byte, Optional ByVal feeds As Integer = 1) As Byte()
      Return bytes.AddBytes((DirectCast(New Byte(feeds - 1){}, IEnumerable(Of Byte))).Select(Of Byte, Byte)CType(Function(x) CByte(10), Func(Of Byte, Byte)).ToArray())
    End Function
_
公共函数换行符(ByVal bytes()作为Byte,可选的ByVal feeds作为Integer=1)作为Byte()
返回bytes.AddBytes((DirectCast(newbyte(feed-1){},IEnumerable(Of Byte)))。选择(Of Byte,Byte)CType(Function(x)CByte(10),Func(Of Byte,Byte)).ToArray()
端函数
这是一个错误

重载解析失败,因为没有可访问的“选择”接受此选项 类型参数的数目


我如何解决这个问题?

我不清楚为什么指定类型参数失败,但无论如何也不需要这样做-而且
CType
的位置似乎被破坏了。如果更改
选择
调用:

.Select(CType(Function(x) CByte(10), Func(Of Byte, Byte)))
然后进行编译—但您也可以完全删除CType:

.Select(Function(x) CByte(10))
(这种简化也适用于C#代码,其中:

.Select<byte, byte>((Func<byte, byte>) (x => (byte) 10))

我不清楚为什么指定类型参数会失败,但无论如何都不需要这样做-而且
CType
的位置似乎已损坏。如果将
Select
调用更改为:

.Select(CType(Function(x) CByte(10), Func(Of Byte, Byte)))
然后进行编译—但您也可以完全删除CType:

.Select(Function(x) CByte(10))
(这种简化也适用于C#代码,其中:

.Select<byte, byte>((Func<byte, byte>) (x => (byte) 10))

你有系统的导入吗。Linq?是的,这就是为什么它说
no select accepts…
这是一种非常复杂的向集合添加
10
的方法。请注意,
feed
的值被忽略,并且一直添加10。我没有看到
CType
这个转换器我用这个转换器得到了这个值
公共函数NewLine2(ByVal字节作为Byte(),可选ByVal feeds作为Integer=1)作为Byte()返回bytes.AddBytes(DirectCast(New Byte(feeds-1){},IEnumerable(Of Byte)).[Select](Of Byte,Byte)(DirectCast(Function(x)CByte(10),Func(Of Byte,Byte)).ToArray(Of Byte)))End Function
它仍然有
DirectCast
,这仍然会给出上面的错误您是否有系统的导入。Linq?是的,这就是为什么它说
no select accepts…
这是一种非常复杂的方法,可以将
10
添加到集合中。请注意,
feed
的值被忽略,而10是addd一直都是。我看不到这个转换器的
CType
,我是用这个转换器得到这个的
\uu公共函数NewLine2(ByVal字节作为Byte(),可选ByVal feeds作为Integer=1)作为Byte()返回字节。AddBytes(DirectCast)(新字节(feeds-1){},IEnumerable(Of Byte))[Select](Of Byte,Byte)(DirectCast(Function)(x)CByte(10),Func(Of Byte,Byte)).ToArray(Of Byte)()End函数
它仍然有
DirectCast
,这仍然给出了上述错误