【问题标题】:datatable.AsEnumerable doesn't work (basic example)datatable.AsEnumerable 不起作用(基本示例)
【发布时间】:2014-06-28 16:29:02
【问题描述】:
Dim x = From row In f_table.AsEnumerable()
                    Select row("Crop")

据我了解,“f_table.AsEnumerable”应该使我的搜索对象(在本例中为“行”)成为数据行对象。这个简单的示例运行时没有任何异常,但没有找到任何条目(如果我切换到从 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

我想要的是这个表格:

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

【问题讨论】:

    标签: vb.net linq asenumerable


    【解决方案1】:

    它是这样工作的:

     Dim query = dt.AsEnumerable
                 .Where(Function(dr) dr("column name").ToString = "something").ToList
    

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

    分组:

     Dim query = dt.AsEnumerable
                 .Where(Function(dr) dr("column name").ToString = "something")
                 .GroupBy(Function(dr) dr("column name"))
    

    【讨论】:

    • 谢谢 - 但我询问上面表格的原因是因为我想使用“new with”按多个列值分组,但只有在应用“where row(”column name“) = "something"" 子句从表中获取子集。我可以通过执行“datatable.select”搜索然后执行 linq 查询来做到这一点,但我想在 linq 查询中完成所有操作。
    • 我不觉得我完全理解你的要求。
    • 我在上面添加/编辑了我的问题。我应该首先提出完整的问题。我很抱歉。
    【解决方案2】:

    没关系 - 我今天是个大傻瓜,因为 f_table 是错误的数据表。我使用了正确的,它起作用了。

    Dim emptyrows_grouped = From row In file_table.AsEnumerable
                                    Where row.Field(Of String)("SamplePosition") ="Empty"
                                    Order By row("Date"), row("Time")
                                    Group By New With {.date = row("Date")}.date,
                                             New With {.crop = row("Crop")}.crop
                                    Into Group
    

    请原谅我浪费你的时间!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-22
      • 2018-06-03
      • 2011-10-09
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多