是否可以使用DataView在DataTable中选择特定列和列数据的字符串位置?
示例:columnA有一个字符串12345A789,我喜欢将所有数据放在位置6 ='A'
DataView iDataView = new DataView(iDataTable, SELECT_Expression_string, ORDER_BY_Expression_string, DataViewRowState.CurrentRows);
SELECT_Expression_string用于获取columnA中的所有数据,其中第6位是char'A'吗?
如果不可能;什么是LINQ声明?
谢谢你, 符文
答案 0 :(得分:0)
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();
如果它是第6名:
DataView dv = (from t in iDataTable.AsEnumerable()
where Regex.IsMatch(t.Field<string>("columnA"), "\\w{5}A\\w*")
select t).AsDataView();
答案 1 :(得分:0)
尝试
var iData = iDataTable.AsEumberable().Where(f => f.columnA.Length > 5 && f.ColumnA[5] == 'A');
这将返回columnA数据长于5且第6个字符为A的所有项。如果columnA为null,则可能仍然失败。您也可以添加支票
答案 2 :(得分:0)
iDataView = (from t in iDataTable.AsEnumerable()
where t.Field<string>("ColumnName").Length > 6 && t.Field<string>("TableName")[6] == 'A'
select t).AsDataView();