如何将 C# 多维列表转换为 VB.Net

Posted

技术标签:

【中文标题】如何将 C# 多维列表转换为 VB.Net【英文标题】:How can I convert a C# multidimensional List to VB.Net 【发布时间】:2013-08-15 01:13:02 【问题描述】:

我首先要说的是我在过去几天中学到的关于 C# 的所有知识,研究如何将 C# 模块转换为 VB.Net 4.0。

下面的代码是我要转换为 VB.Net 的 C# 模块中的一些选择行。在大多数情况下,它相对简单,我无法弄清楚,我用谷歌搜索并找到了答案。经过大约 10 个小时的尝试寻找下面几行的答案后,我终于来到这里寻求帮助。

据我所知,C# 代码创建了一个整数列表,其中整数是一个数组。我在下面包含的行访问该数组列表。

我的问题是:如何将其转换为 VB.Net 4.0?或者有人可以向我提供转换后的工作代码吗?

提前致谢!

C# 代码:

// mColumnPoint, mStartPoint, mEndPoint are all Integers
// Note that there is a mColumnPoint(int) and mColumnPoints(list) plural

private List<int[]> mColumnPoints;

mColumnPoints = new List<int[]>();

mColumnPoints.Add(new int[]  mStartPoint, mEndPoint );

for (int i = (int)mColumnPoints[mColumnPoint].GetValue(0);
   i < (int)mColumnPoints[mColumnPoint].GetValue(1); i++)

    // Stuff in for loop here

【问题讨论】:

听起来很懒,但是您是否尝试过使用工具进行转换?喜欢developerfusion.com/tools/convert/csharp-to-vb/… 我没有。但我会看看那个。谢谢! @CalebC:我刚刚试用了那个工具,它完美地工作了......虽然我为它的工作而欣喜若狂,但我对它的速度和我花在研究 C# 的时间感到受骗。 .. 不过我会克服的。感谢您提供该链接...绝对已添加书签以供将来参考。 【参考方案1】:

嗯,这很容易:

            Dim list As List(Of Integer()) = New List(Of Integer())()
        list.Add(New Integer()() =  Class1.mStartPoint, Class1.mEndPoint )
        For i As Integer = CInt(list(Class1.mColumnPoint).GetValue(0))To CInt(list(Class1.mColumnPoint).GetValue(1)) - 1
        Next

我使用了一个很棒的工具,叫做“ILSpy”, http://sourceforge.net/projects/sharpdevelop/files/ILSpy/2.0/ILSpy_Master_2.1.0.1603_RTW_Binaries.zip/download 只需使用 C# 或 vb.net 构建您想要的内容,然后打开该工具并浏览您的 *.exe 或 *.dll 以在 vb.net 或 c# 中查看它,玩得开心:)

【讨论】:

感谢您的代码转换。这正是我想要的!【参考方案2】:
  Module Module1

Structure segment
    Dim startingPoint As Integer
    Dim endingPoint As Integer
End Structure

Sub Main()

    Dim mStartPoint, mEndPoint, mColumnPoint As Integer

    Dim mColumnPoints As New ArrayList
    Dim nextSegment As segment

    mStartPoint = 1
    mEndPoint = 42
    mColumnPoint = 0  ' The first element in the array

    nextSegment.startingPoint = mStartPoint
    nextSegment.endingPoint = mEndPoint

    mColumnPoints.Add(nextSegment)

    Dim startValue As Integer = mColumnPoints(mColumnPoint).startingPoint
    Dim limit As Integer = mColumnPoints(mColumnPoint).endingPoint

    Dim i As Integer
    For i = startValue To limit
        ' do something
        Console.WriteLine("Cycle # " & i.ToString)
    Next

    Console.WriteLine("Done " & i.ToString)

End Sub

End Module

【讨论】:

感谢您这样做,但由于我正在转换现有代码,因此无法更改其内在结构。如果可以的话,我自己会做不同的事情。同样感谢您的时间和精力。 =) 祝您的转换项目好运!去过那里,必须这样做。

以上是关于如何将 C# 多维列表转换为 VB.Net的主要内容,如果未能解决你的问题,请参考以下文章

如何将公共事件从 c# 转换为 vb.net [关闭]

需要帮助将 c# 中的 opencv 转换为 vb.net

将 SQL 命令从 vb .net 转换为 C#

从 C# 转换为 vb.net 后,它显示错误

C# 到 VB.Net:为啥转换为 VB 时编译失败?

“私有”可见性修饰符 - 将 C# 转换为 VB 时如何处理差异?