将IEnumerable(Of DataRow())转换为List(Of Datarow)

问题描述 投票:0回答:1

我有一个DataSet与两个DataTables的关系。 这个Dataset是我的网格中的DataSource。 在我的应用程序的其他网站,我使用这个DataSource作为DataTable。这种关系允许我使用ChildRelations

我需要一个列表中的所有DataRows。

第一部分是(DTpadreDThijoDataTables):

DS = New DataSet()
DS.Tables.Add(DTpadre.Copy)
DS.Tables.Add(DThijo.Copy)
DS.Relations.Add("PERMISOS", DS.Tables(0).Columns("CORR"), DS.Tables(1).Columns("CORR_PADRE"), False)
gridDetallePerfiles.DataSource = DS.Tables(0)

我尝试的是:

DTprincipal = DirectCast(gridDetallePerfiles.DataSource, DataTable)
Dim obj = (From a As DataRelation In DTprincipal.ChildRelations() Select a.ChildTable.Select())

objIEnumerable(Of DataRow()) ...我想要IEnumerable(Of Datarow)

vb.net linq ienumerable
1个回答
0
投票

a.ChildTable是一个DataTablea.ChildTable.Select()是对Select() methodDataTable的召唤,它返回了一系列DataRow。 因此产生的类型是IEnumerable(Of an array of DataRow)

如果要将所有子表的所有行展平为单个集合,请使用SelectMany

Dim obj = DTprincipal.ChildRelations.Cast(Of DataRelation).SelectMany(Function(r) r.ChildTable.Select())
© www.soinside.com 2019 - 2024. All rights reserved.