修剪DataTable的所有单元格

dis*_*kid 1 c# linq datatable

我有一个DataTable使用SQL查询填充.如果DataTable未修剪此值(从左侧和右侧),程序将无法找到正确的匹配项.所以我正在寻找一个有效的LINQ查询(不是两个嵌套foreach语句)来修剪它的所有值DataTable并返回它的干净版本.

Tim*_*ter 6

最有效的方法是在数据库中执行此操作,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来修改源.查询不应导致副作用.