A'在字符串位置6
本文关键字:字符串 位置 | 更新日期: 2023-09-27 18:06:18
是否可以使用DataView在DataTable中选择特定的列和列数据的字符串位置?
示例:columnA有一个字符串12345A789,我喜欢所有的数据在位置6= ' a '
DataView iDataView = new DataView(iDataTable, SELECT_Expression_string, ORDER_BY_Expression_string, DataViewRowState.CurrentRows);
什么将是SELECT_Expression_string获得列na与字符' A '在位置6的所有数据?
如果不可能;LINQ声明是什么?
谢谢你,符文
Try
var iData = iDataTable.AsEumberable().Where(f => f.columnA.Length > 5 && f.ColumnA[5] == 'A');
这将返回列na数据大于5且第6个字符为a的所有项,如果列na为空,它仍然可能失败。你也可以添加检查
看起来DataView.RowFilter
不支持单个字符通配符。
你可以试试:
更新你在@BugFinder回答中的评论表明你正在检查第7个字符,而不是第6个。
如果是第7个字符:
DataView dv = (from t in iDataTable.AsEnumerable()
where Regex.IsMatch(t.Field<string>("columnA"), "''w{6}A''w*")
select t).AsDataView();
如果是第六个:
DataView dv = (from t in iDataTable.AsEnumerable()
where Regex.IsMatch(t.Field<string>("columnA"), "''w{5}A''w*")
select t).AsDataView();
iDataView = (from t in iDataTable.AsEnumerable()
where t.Field<string>("ColumnName").Length > 6 && t.Field<string>("TableName")[6] == 'A'
select t).AsDataView();