我有这个 LINQ 查询:
Dim JoinedResult = LeftTable.GroupJoin(RightTable, Function(LeftTableRow) LeftTableRow(FieldIndexInLeftTable), _
Function(RightTableRow) RightTableRow(FieldIndexInRightTable), _
Function(LeftTableRow, RightTableRow) _
New With {LeftTableRow, RightTableRow}).SelectMany(Function(Rows) Rows.RightTableRow.DefaultIfEmpty().Select(Function(Right) New With {Rows.LeftTableRow, Right}))
LeftTable
有 5 列,RightTable
有 2 列。
仅在前 11 行的情况下才匹配:
问题是,我应该如何修改DefaultIfEmpty()
,我得到一个包含两个元素的对象数组,其中每个元素都让我们什么都不说(重点是,元素应该为空)。
我应该这样做,列号RightTable
可以改变。
谢谢。
编辑:
我有解决办法。
我创建了一个包含 2 个元素的对象数组:
Dim NullValue() As Object = Nothing
Array.Resize(NullValue, 2)
NullValue(0) = DBNull.Value
NullValue(1) = DBNull.Value
然后我在这样的DefaultIfEmpty()
函数中使用它:DefaultIfEmpty(NullValue)