匹配数据视图行筛选器中的单个字符
本文关键字:单个 字符 筛选 数据 视图 | 更新日期: 2023-09-27 18:33:35
我想知道是否有任何可能的方法可以在提供单个字符匹配的DataView
上应用RowFilter
?
例如 DataView.RowFilter = "SOME_COL like 'A_BCD%';
其中下划线表示 Oracle SQL 中的单个字符匹配,%
是 0 个或更多字符的通配符。
显然,RowFilter 只支持通配符(* or %)
在匹配表达式的开头或结尾。我唯一的另一个想法是遍历行并删除与正则表达式不匹配的行,但这并不理想。
任何帮助或想法将不胜感激!谢谢
或者,
DataView.RowFilter = "Substring(SOME_COL, 1, 1) = 'A' and Substring(SOME_COL, 3, 3) = 'BCD';"
您可以使用 Linq to Datasets 来执行此操作
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable("test");
dt.Columns.Add("SOME_COL", typeof(string));
dt.Rows.Add("AABCDEFG");
dt.Rows.Add("AZBCDEFG");
dt.Rows.Add("AZZBCDEFG");
dt.Rows.Add("ABC");
Regex r = new Regex("A''wBCDE");
DataView dv
= (from t in dt.AsEnumerable()
where r.IsMatch(t.Field<string>("SOME_COL"))
select t).AsDataView();
foreach(DataRowView row in dv)
{
Console.WriteLine(row[0]);
}
}
}
输出
AABCDEFG
AZBCDEFG
Press any key to continue . . .