将C#代码转换为VB.net时出现的问题

将C#代码转换为VB.net时出现的问题,c#,.net,vb.net,linq,lambda,C#,.net,Vb.net,Linq,Lambda,我在将以下代码转换为vb.net时遇到问题,因为我对lambda表达式不太熟悉。尤其是最后一行是我的问题。由于最后一行的原因,Teleric代码转换器对我没有帮助。谁能帮帮我吗 int[] numbers = { 1, 3, 4, 9, 2, 4 }; int numToRemove = 4; int numIndex = Array.IndexOf(numbers, numToRemove); numbers = numbers.Where((val, idx) => idx != nu

我在将以下代码转换为vb.net时遇到问题,因为我对lambda表达式不太熟悉。尤其是最后一行是我的问题。由于最后一行的原因,Teleric代码转换器对我没有帮助。谁能帮帮我吗

int[] numbers = { 1, 3, 4, 9, 2, 4 };
int numToRemove = 4;
int numIndex = Array.IndexOf(numbers, numToRemove);
numbers = numbers.Where((val, idx) => idx != numIndex).ToArray();

如果将最后一行的输出存储在新变量中,则使用Telerik进行转换是可行的。然后你得到这个:

Private numbers As Integer() = {1, 3, 4, 9, 2, 4}
Private numToRemove As Integer = 4
Private numIndex As Integer = Array.IndexOf(numbers, numToRemove)
Private result = numbers.Where(Function(val, idx) idx <> numIndex)
作为整数的私有数()={1,3,4,9,2,4}
私有numToRemove为整数=4
Private numidex As Integer=Array.IndexOf(numbers,numToRemove)
私有结果=数字。其中(函数(val,idx)idx numidex)

如果将最后一行的输出存储在一个新变量中,则使用Telerik进行转换是有效的。然后你得到这个:

Private numbers As Integer() = {1, 3, 4, 9, 2, 4}
Private numToRemove As Integer = 4
Private numIndex As Integer = Array.IndexOf(numbers, numToRemove)
Private result = numbers.Where(Function(val, idx) idx <> numIndex)
作为整数的私有数()={1,3,4,9,2,4}
私有numToRemove为整数=4
Private numidex As Integer=Array.IndexOf(numbers,numToRemove)
私有结果=数字。其中(函数(val,idx)idx numidex)
自VB6(!)以来未使用VB-尽管如此:

    Dim numbers() = {1, 3, 4, 9, 2, 4}
    Dim numToRemove As Integer = 4
    Dim numIndex As Integer = Array.IndexOf(numbers, numToRemove)
    numbers = numbers.Where(Function(ByVal val, ByVal idx) idx <> numIndex).ToArray()
Dim numbers()={1,3,4,9,2,4}
Dim numToRemove作为整数=4
Dim numIndex作为整数=Array.IndexOf(数字,numToRemove)
numbers=numbers.Where(函数(ByVal val,ByVal idx)idx numidex.ToArray()
(这只是一个免责声明,因为上面可能不是最佳实践等!)

没有使用VB,因为VB6(!)-尽管如此:

    Dim numbers() = {1, 3, 4, 9, 2, 4}
    Dim numToRemove As Integer = 4
    Dim numIndex As Integer = Array.IndexOf(numbers, numToRemove)
    numbers = numbers.Where(Function(ByVal val, ByVal idx) idx <> numIndex).ToArray()
Dim numbers()={1,3,4,9,2,4}
Dim numToRemove作为整数=4
Dim numIndex作为整数=Array.IndexOf(数字,numToRemove)
numbers=numbers.Where(函数(ByVal val,ByVal idx)idx numidex.ToArray()

(这只是一个免责声明,因为上述内容可能不是最佳实践等!)

以及许多其他内容。代码的性质表明,这些内容可能不是字段(即Private modifier,而不是Dim)。另外,
result
在原始c#中不存在,如果OP将结果存储在数组中,则将它们存储在IEnumerable(整数)中
.ToArray()
将很好地结束它(然后您也可以将它放回
数字中)。代码的性质表明这些可能不是字段(即私有修饰符而不是Dim)。另外,
result
在原始c#中不存在,如果OP将结果存储在数组中,则将它们存储在IEnumerable(整数)中
.ToArray()
会很好地结束它(那么你还是把它放回
数字中吧)。