c# - 使用 Linq 从数据表中获取不同的行(与多列不同)

标签 c# vb.net linq linq-to-objects

我正在尝试区分多个列并从数据表中获取数据行。但出现错误。

 Dim query As IEnumerable(Of DataRow) = 
            (From row As DataRow In SourceTable.AsEnumerable() _
             Select row.Field(Of String)("ColumnName1"),
                    row.Field(Of String)("ColumnName2") ).Distinct()

以下错误:

Unable to cast object of type '<DistinctIterator>d__7a`1[System.String]' 
to type 'System.Collections.Generic.IEnumerable`1[System.Data.DataRow]'.

我想要另一个基于 SourceTable 中给定列的不同行的数据表。

最佳答案

然后试试这个

Dim query = From q In (From p In dt.AsEnumerable() Select New With {.col1= p("ColumnName1"), .col2 = p("ColumnName2")}) Select q.col1, q.col2 Distinct

关于c# - 使用 Linq 从数据表中获取不同的行(与多列不同),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234341/

相关文章:

vb.net - 匿名类型,从 if 语句转换为 AsQueryable,然后进行查询

c# - CA2213 代码分析规则和自动实现的属性

c# - MSDN 代码示例中缺少空格和换行符

asp.net - "Unified Modelling Language"的简单解释,为什么它很重要?

c# - 声明一个空的 Queryable?

c# - 如何在 LINQ 中对列表数组进行分组

c# - 如何将多个 View 的DataContext设置为ViewModel的一个实例

c# - 从 C# 调用 C++ DLib 导致错误分配异常

c# - try catch 不处理 BadImageFormatException

c# - 将模型导出到数据表