C# 使用自定义函数筛选dataview有何意义?

C# 使用自定义函数筛选dataview有何意义?,c#,C#,我尝试使用自定义函数筛选dataview,但无法识别。可能吗?如果有任何文章是这样的?以下是一些用于名为dv的数据视图的各种过滤器的示例: dv.RowFilter = "Country = 'USA'"; dv.RowFilter = "EmployeeID >5 AND Birthdate < #1/31/82#" dv.RowFilter = "Description LIKE '*product*'" dv.RowFilter = "employeeID IN (2,4,5)

我尝试使用自定义函数筛选dataview,但无法识别。可能吗?如果有任何文章是这样的?

以下是一些用于名为dv的数据视图的各种过滤器的示例:

dv.RowFilter = "Country = 'USA'";
dv.RowFilter = "EmployeeID >5 AND Birthdate < #1/31/82#"
dv.RowFilter = "Description LIKE '*product*'"
dv.RowFilter = "employeeID IN (2,4,5)"
dv.RowFilter=“国家=‘美国’”;
dv.RowFilter=“EmployeeID>5和生日<#1/31/82#”
dv.RowFilter=“类似于“*产品*”的描述”
dv.RowFilter=“在(2,4,5)中的employeeID”
等号前的名称是数据视图中列或字段的名称。

可以,这将允许分组、筛选等。它将用于数据表/数据集

DataTable table = MyDataSet["MyDataTable"]
ICollectionView collectionView = CollectionViewSource.GetDefaultView(table );
collectionView.Filter = new Predicate<object>(FilterOutA);
DataTable=MyDataSet[“MyDataTable”]
ICollectionView collectionView=CollectionViewSource.GetDefaultView(表);
collectionView.Filter=新谓词(FilterOutA);

DataView
中,不能将自定义函数用作
RowFilter
,只能使用文档中为
DataColumn.expression
属性定义的表达式。在表达式的上下文中可以做很多事情,所以这通常就足够了

如果您的函数在表达式中做了一些无法完成的事情,一个快速而肮脏的解决方法是添加一个临时列并对其进行筛选:

dv.Table.Columns.Add("Flag", typeof(bool));
foreach (DataRow dr in dv.Table.Rows)
{
   dr.SetField("Flag", myFunction(dr);
}
dv.RowFilter = "Flag = True";

是的,您可以筛选DataView记录。也许您可以发布不起作用的代码?