1

我有这个 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)

4

0 回答 0