C# 如何从DataView中筛选出项目集合

C# 如何从DataView中筛选出项目集合,c#,winforms,filtering,dataview,C#,Winforms,Filtering,Dataview,我需要使用DataView中的RowFilter获取从视图中筛选出的项目集合 通过使用以下查询,我可以从DataView获得总体记录 allRecords= (data as DataView).Table.AsEnumerable().AsQueryable(); 我只需要DataView中的filtererd记录集合。我怎样才能做到这一点。 例:如果表作为记录a、b、c、d 然后应用过滤器在视图中仅显示一个。现在,我需要获取视图中未显示的项目(b、c和d)。请帮助我解决此问题。这将过滤数

我需要使用DataView中的RowFilter获取从视图中筛选出的项目集合

通过使用以下查询,我可以从DataView获得总体记录

 allRecords= (data as DataView).Table.AsEnumerable().AsQueryable();
我只需要DataView中的filtererd记录集合。我怎样才能做到这一点。 例:如果表作为记录a、b、c、d
然后应用过滤器在视图中仅显示一个。现在,我需要获取视图中未显示的项目(b、c和d)。请帮助我解决此问题。

这将过滤数据表(假设您的列名为recorda)

然后,这将调用“ToTable()”,它从过滤视图中生成一个表,而不仅仅是一个表,它是对完整的未过滤表的引用

allRecords= (data as DataView).ToTable()

这将过滤数据表(假设您的列名为recorda)

然后,这将调用“ToTable()”,它从过滤视图中生成一个表,而不仅仅是一个表,它是对完整的未过滤表的引用

allRecords= (data as DataView).ToTable()

您可以在两个集合之间使用来获得差异。我尝试使用Except方法,但与输出没有差异<代码>变量表=(数据为DataView).ToTable().AsEnumerable();var allTable=(数据为DataView).Table.AsEnumerable();filteredRecords=allTable.Except(table.AsQueryable()您需要与筛选表进行比较,而不是与同一个表进行比较。这里我提到的表是筛选表(仅包含100行),而allTable包含所有记录(225行)。其工作方式是添加默认DataRowComparer
allTable。除了(table,DataRowComparer.Default)
,谢谢。您可以在两个集合之间使用来获得差异。我尝试使用Except方法,但与输出没有差异<代码>变量表=(数据为DataView).ToTable().AsEnumerable();var allTable=(数据为DataView).Table.AsEnumerable();filteredRecords=allTable.Except(table.AsQueryable()您需要与筛选表进行比较,而不是与同一个表进行比较。这里我提到的表是筛选表(仅包含100行),而allTable包含所有记录(225行)。其工作方式是添加默认DataRowComparer
allTable。除了(table,DataRowComparer.Default)
,谢谢。我无法从DataView
(数据为DataView)分配DefaultView属性。DefaultView=“recorda='a'”是否遗漏了任何内容?我无法从DataView
(数据为DataView)分配DefaultView属性。DefaultView=“recorda='a'”我有什么遗漏吗?