datatable.AsEnumerable 不起作用(基本示例)

use*_*060 1 linq vb.net asenumerable

Dim x = From row In f_table.AsEnumerable()
                    Select row("Crop")
Run Code Online (Sandbox Code Playgroud)

据我了解,“f_table.AsEnumerable”应该使我的搜索对象(在本例中为“row”)成为数据行对象。这个简单的示例运行时没有任何异常,但没有找到任何条目(如果我切换到从 f_table 获取的数据行数组,而不是 f_table.AsEnumerable,则此搜索有效)。

为什么 AsEnumerable 不允许搜索表的行的任何想法?

编辑/添加:以下是我所拥有的,其中“emptyrows”是 f_table 中行的子集数组。

Dim emptyrows_grouped = From row In emptyrows
                                Order By row("Date"), row("Time")
                                Group By New With {.date = row("Date")}.date,
                                         New With {.crop = row("Crop")}.crop
                                Into Group
Run Code Online (Sandbox Code Playgroud)

我想要的是这种形式:

Dim emptyrows_grouped = From row In f_table.AsEnumerable
                                Where row.Field(Of String)("SamplePosition") Like "Emp%"
                                Order By row("Date"), row("Time")
                                Group By New With {.date = row("Date")}.date,
                                         New With {.crop = row("Crop")}.crop
                                Into Group
Run Code Online (Sandbox Code Playgroud)

One*_*Day 5

它是这样工作的:

 Dim query = dt.AsEnumerable
             .Where(Function(dr) dr("column name").ToString = "something").ToList
Run Code Online (Sandbox Code Playgroud)

这会产生一个 DataRows 列表,其中此列的值为“某物”

通过...分组:

 Dim query = dt.AsEnumerable
             .Where(Function(dr) dr("column name").ToString = "something")
             .GroupBy(Function(dr) dr("column name"))
Run Code Online (Sandbox Code Playgroud)