我有一个DataTable使用SQL查询填充.如果DataTable未修剪此值(从左侧和右侧),程序将无法找到正确的匹配项.所以我正在寻找一个有效的LINQ查询(不是两个嵌套foreach语句)来修剪它的所有值DataTable并返回它的干净版本.
最有效的方法是在数据库中执行此操作,fe:
SELECT RTRIM(LTRIM(ColumnName)) AS TrimmedColumn FROM TableName
Run Code Online (Sandbox Code Playgroud)
如果必须使用C#,最高效的方法是一个简单的循环(LINQ也使用循环):
DataColumn[] stringColumns = table.Columns.Cast<DataColumn>()
.Where(c => c.DataType == typeof(string))
.ToArray();
foreach(DataRow row in table.Rows)
foreach(DataColumn col in stringColumns)
row.SetField<string>(col, row.Field<string>(col).Trim());
Run Code Online (Sandbox Code Playgroud)
通常,不要使用LINQ来修改源.查询不应导致副作用.