0
我试图解决一个问题,但现在没有成功。LINQ到数据集包含或任何
我有一个数据表有3个字段:f1,f2,f3(字符串,字符串,双)。
我想写一个linq查询,它会产生以下结果:它选择行,其中f1的任何值与f2值都不匹配。换句话说,哪些是f2值,哪些不会在f1字段值中出现。
我应该如何结合where,any,包含关键字?
我试图解决一个问题,但现在没有成功。LINQ到数据集包含或任何
我有一个数据表有3个字段:f1,f2,f3(字符串,字符串,双)。
我想写一个linq查询,它会产生以下结果:它选择行,其中f1的任何值与f2值都不匹配。换句话说,哪些是f2值,哪些不会在f1字段值中出现。
我应该如何结合where,any,包含关键字?
尝试使用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表达式中的第二和第三个参数)
然后最后一个参数是λ-这创造结果收集/方法,
我们检查匹配行的集合是否为空
和Where
函数删除集合中的空行
正如我写的,我试图做一个LINQ查询。我的对象/集合是Datatable.AsEnumerable。 – derstauner