我在哪里可以获得有关的信息!VB.Net在Linq中使用的运算符到DataSet?

JJS*_*JJS 2 .net linq vb.net operators linq-to-dataset

示例查询应用程序使用了!运算符引用DataRow中的字段.

Option Strict Off

Imports System.Data
Imports System.Linq

Module Program

    Public Sub Main()
        Dim numbers() As Integer = {5, 4, 1, 3, 9, 8, 6, 7, 2, 0}
        Dim table As New DataTable("Numbers")
        table.Columns.Add("number", GetType(Integer))
        For Each n In numbers
            table.Rows.Add(New Object() {n})
        Next

        Dim lowNums = From row In table.Rows _
                      Where row!number < 5
                      Select row

        For Each x In lowNums
            Console.WriteLine(x!number)
        Next
    End Sub

End Module
Run Code Online (Sandbox Code Playgroud)

是什么 !操作员叫?规则记录在哪里?

Mat*_*lko 5

这是(在此上下文中)感叹号运算符:

"仅在类或接口上使用!运算符作为字典访问运算符.类或接口必须具有接受单个String参数的默认属性.紧跟在!运算符之后的标识符将成为传递给默认属性的参数值一根绳子."

所以代码row!number相当于row("number")

这个运算符是VB6遗留的遗留物,在VB.NET IMO中应该避免使用.它与LINQ没有特别关系.

你的例子有点人为,因为它没有编译(即使Option Strict Off) - 编辑:现在已经修改但仍然无法使用Option Strict Off进行编译

注意"!字符也用作单一字符." 例如,Dim s! = 0.12但这不是您的上下文中的代码的意图