Joh*_*sen 1 linq vb.net datatable
我正在尝试从数据表中的特定列检索所有不同的值。数据表中的列名称为“计数”。我有2240行,“计数”列中有6个不同的值。问题是,当我执行以下代码时,它给了我行数而不是6个不同的值。
Dim counts = (From row In loadedData
Select row.Item("Count")).Distinct()
For Each i In counts
MsgBox(i)
Next
Run Code Online (Sandbox Code Playgroud)
如何修改此值以检索6个不同的值,而不是给我总的行数?
您可以使用 ToTable(distinct As Boolean, ParamArray columnNames As String()) 方法来实现此目的。
loadedData.DefaultView.ToTable(True, "Count")
Run Code Online (Sandbox Code Playgroud)
这将为您返回不同的用户。如果需要,您可以添加多个列名称。
这是msdn文档。 https://msdn.microsoft.com/en-us/library/wec2b2e6(v=vs.110).aspx
您只需要选择该列并使用Enumerable.Distinct:
Dim distinctCounts As IEnumerable(Of Int32) = loadedData.AsEnumerable().
Select(Function(row) row.Field(Of Int32)("Count")).
Distinct()
Run Code Online (Sandbox Code Playgroud)
在查询语法中(我什至不知道DistinctVB.NET 甚至直接支持该语法):
distinctCounts = From row In loadedData
Select row.Field(Of Int32)("Count")
Distinct
Run Code Online (Sandbox Code Playgroud)