在Visual Basic中用于For Each循环的等效var

时间:2012-09-07 19:38:53

标签: c# vb.net

我需要在Visual Basic中运行一些与C#相同的代码:

for(var item in removeRows)
{
   two.ImportRow(item);
}

我知道你最接近在VB中声明“var”的基本上是

Dim something =

但是,你会如何在foreach循环中执行此操作?

8 个答案:

答案 0 :(得分:5)

您只需使用:

For Each item In removeRows
    two.ImportRow(item)
Next

VB中的As datatype规范是可选的。有关详细信息,请参阅For Each文档。

答案 1 :(得分:4)

使用Option Infer On,您可以不使用“As ...”,并推断出类型。 使用Option Infer Off时,如果您不使用该类型,则将采用“对象”类型。

答案 2 :(得分:3)

正如其他人所提到的,As Type是选项,如果您有选项推断。我怀疑你的项目是否关闭了选项推断(这是导入在.Net 2.0中启动的现有项目时的默认设置)。在项目文件的顶部或项目的编译设置中打开选项推断。

Option Infer On
'' This works:
For Each item In removeRows
   two.ImportRow(item)
Next

Option Infer Off
'' Requires:
For Each item As DataRow In removeRows
   '' I'm assuming the strong type here. Object will work with Option Strict Off
   two.ImportRow(item)
Next

答案 3 :(得分:1)

    For Each item As Object in removerows
       two.ImportRow(item)
    Next

在VB.NET(VB9)中省略类型将隐式输入变量。

答案 4 :(得分:0)

在For Each文档中,写有As Type is optional

所以

For Each row in removeRows
...
Next

答案 5 :(得分:0)

您可以尝试(使用Object),输入是可选的

For Each item As Object In removeRows
    two.ImportRow(item)
Next

答案 6 :(得分:0)

这样的事情:

   Dim siteName As String
   Dim singleChar As Char
   siteName = "HTTP://NET-INFORMATIONS.COM"
   For Each singlechar In siteName
        two.ImportRow(singleChar);
   Next

答案 7 :(得分:0)

vb中不需要“as”:

For Each p  In Process.GetProcesses()
    Debug.WriteLine(p.ProcessName)
Next