我正在尝试解决问题,但现在没有成功。
我有一个包含 3 个字段的数据表:f1、f2、f3(字符串、字符串、双精度)。
我想编写一个 linq 查询,它执行以下操作:它选择行,其中 f1 的任何值都与 f2 值不匹配。换句话说,这是 f2 值,它不会出现在 f1 字段值中。
我应该如何组合包含关键字的位置?
尝试使用 LINQ 扩展函数 GroupJoin
Dim dt As DataTable 'Your datatable
Dim uusi As IEnumerable(Of DataRow) = dt.AsEnumerable() _
.GroupJoin(Of DataRow, String, DataRow)(dt.AsEnumerable(),
Function(dr) dr.Field(Of String)("f1"),
Function(dr) dr.Field(Of String)("f2"),
Function(row, matched)
If matched.Count > 0 Then
Return Nothing
End If
Return row
End Function) _
.Where(Function(row) row IsNot Nothing)
GroupJoin
方法将按给定值(第二个和第三个参数
中的 lambda)查找匹配的行然后最后一个参数是创建结果集合的 lambda/方法,
在那里我们检查匹配行的集合是否为空Where
函数从集合中删除空行