Linq 的新手;需要从单行中获取多个值



我正在尝试从数据表中检索多列,但只能从一行中检索 - 然后根据这些结果设置属性。 我已经弄清楚了如何运行多个查询来一次获取单个列,但必须有一种方法将它们全部合并到一个查询中。

以下是我认为可能有效的方法:

Dim colSettingsQry = From r In Me.GridProcColumnSettings.AsEnumerable _
                     Where r("DataFieldNm") = colNm _
                     Select New With _
                     { _
                        .uniqueNm = r.Field(Of String)("UniqueNm").Single(), _
                        .sortExpression = r.Field(Of String)("SortExpression").Single(), _
                        .headerTxt = r.Field(Of String)("HeaderTxt").Single(), _
                        .headerStyleWidth = r.Field(Of String)("HeaderStyleWidth").Single(), _
                        .dataFormatString = r.Field(Of String)("DataFormatTxt").Single() _
                     }
gridCol.SortExpression = From c In colSettingsQry _
                         Select c.sortExpression
gridCol.HeaderText = From c In colSettingsQry _
                     Select c.headerTxt

。等。

猜我错过了一些很明显的东西——有人有建议吗?

提前谢谢。

我想你正在寻找这个:

Dim colSettingsQry = ... (your query)
Dim setting = colSettingsQry.FirstOrDefault()
If setting IsNot Nothing Then
    gridCol.SortExpression = setting.SortExpression
    gridCol.HeaderText = setting.HeaderText
    ...
EndIf

通过FirstOrDefault,如果有的话,您可以获取序列的第一个元素,否则Nothing.

最新更新