在DataTable中,我试图找到特定的字符串条目以替换它们或更新它们。
但是,它必须仅针对特定列(数据类型为字符串)。
我需要的是使用它们的名称或标题选择所有这些列,然后查找并替换/更新这些列中具有特定条件的所有字符串。
E.g。使用名称选择列(名称位于List<string>
或string[]
),然后在字符串的开头搜索包含%
的每个字符串,并将其替换为{{1 }}
使用SQL的类似尝试是@
我试图在单个select col,replace(col,'%','@') from dtTable where col like '@%'
查询中执行此操作,但到目前为止没有成功。任何LINQ
的例子都会有很大的帮助。
答案 0 :(得分:1)
LINQ应仅用于查询集合而不是修改它们。使用简单的循环和强类型的DataRow.Field
+ DataRow.SetField
并支持nullables:
List<string> colsToUpdate = new List<string> { "Column1", "Column2", "..." };
foreach (DataRow row in table.Rows)
{
foreach (String colName in colsToUpdate)
{
string oldValue = row.Field<string>(colName);
if(oldValue.StartsWith("%"))
row.SetField(colName, "@" + oldValue.Substring(1));
}
}