2016-03-23 99 views
-1

我已经找到堆栈溢出下面的代码这段代码是从二维数组中删除行,它成功地在C#中工作,我的问题是将它转换为vb.net,当我转换它时它不起作用。任何帮助,请从二维数组中删除行

Public Function TrimArray(ByVal rowToRemove As Integer, ByVal originalArray As Integer(,)) As Integer(,) 

Dim result As Integer(,) = New Integer(originalArray.GetLength(0) - 2, originalArray.GetLength(1) - 1) {} 

    Dim i As Integer = 0, j As Integer = 0 
    While i < originalArray.GetLength(0) 
     If i = rowToRemove Then 
      Continue While 
     End If 
     Dim p As Integer = 0, m As Integer = 0 
     While p < originalArray.GetLength(1) 
      result(j, m) = originalArray(i, p) 
      m += 1 
      p += 1 
     End While 
     j += 1 
     i += 1 
    End While 

    Return result 
End Function 
+0

你试过吗? http://converter.telerik.com/ – Werdna

+0

显示您的转换后的代码,并告诉我们什么“不起作用” –

+0

是的。我试过了很多转换器 – rasha

回答

0

这应该工作:

Public Shared Function DeleteRow(rowToRemove As Integer, Array1 As Integer(,)) As Integer(,) 
    Dim Array2 As Integer(,) = New Integer(Array1.GetLength(0) - 2, Array1.GetLength(1) - 1) {} 
    Dim i As Integer = 0, j As Integer = 0 
    While i < Array1.GetLength(0) 
     If i = rowToRemove Then 
      Continue While 
     End If 
     Dim k As Integer = 0, m As Integer = 0 
     While k < Array1.GetLength(1) 
      Array2(j, m) = Array1(i, k) 
      m += 1 
      k += 1 
     End While 
     j += 1 
     i += 1 
    End While 
    Return Array2 
End Function 

好了,我没有把它转换自己。你也不需要那么做。你可以只用一个代码转换器:

Code Converter | Provided by Telerik

+0

@ FARHAN ANAM好吧,我试着使用代码转换器,但它没有工作,所以你的代码上面..我不知道问题在哪里 – rasha

0

代码是现在的工作,感谢所有

Public Function DeleteRow(ByVal rowToRemove As Integer, ByVal Array1 As Integer(,)) As Integer(,) 
    Dim Array2 As Integer(,) = New Integer(Array1.GetLength(0) - 2, Array1.GetLength(1) - 1) {} 
    Dim j As Integer = 0 
    For i = 0 To Array1.GetLength(0) - 1 

     If i = rowToRemove Then 

      Continue For 

     End If 

     Dim k As Integer = 0, m As Integer = 0 
     While k < Array1.GetLength(1) 
      Array2(j, m) = Array1(i, k) 
      m += 1 
      k += 1 
     End While 

     j += 1 
    Next 

    Return Array2 
End Function