使用Linq修剪数据表单元格中的空白

使用Linq修剪数据表单元格中的空白,linq,Linq,这段代码用于修剪每个数据行的每个数据单元中的所有空格。 如何获取此代码: var dataRows = dataTable.AsEnumerable(); foreach (var row in dataRows) { var cellList = row.ItemArray.ToList(); row.ItemArray = cellList.Select(x => x.ToString().Trim()).ToArray(); } 一行代码,这样我就不必遍历每一行

这段代码用于修剪每个数据行的每个数据单元中的所有空格。 如何获取此代码:

var dataRows = dataTable.AsEnumerable();
foreach (var row in dataRows)
{
     var cellList = row.ItemArray.ToList();
     row.ItemArray = cellList.Select(x => x.ToString().Trim()).ToArray();
}
一行代码,这样我就不必遍历每一行了?类似这样的东西,但不起作用:

dataTable.AsEnumerable().Select(y => y.ItemArray.ToList()).Select(x => x.ToString().Trim());

使用linq,您不能更改项目值。最后,您应该运行for loop(或foreach)来更改字段值。

例如

var iq = obj from dataTable.asEnumerable() select new{
PersonName = a.Field<string>("PersonName"),
PersonID = a.Field<decimal>("PersonID"),
ParticipantString = a.Field<string>("DisplayString"),
PersonUserName = d.Field<string>("UserName")
}
var iq=obj from dataTable.asEnumerable()选择新建{
PersonName=a.Field(“PersonName”),
PersonID=a.Field(“PersonID”),
ParticipantString=a.Field(“DisplayString”),
PersonUserName=d.Field(“用户名”)
}

如果你喜欢LINQish stype:

  dataTable.AsEnumerable().ToList()
        .ForEach(row =>
        {
            var cellList = row.ItemArray.ToList();
            row.ItemArray = cellList.Select(x => x.ToString().Trim()).ToArray();
        });

澄清一下,因为它读起来像是有一个误解:使用linq或任何其他形式的一行代码仍然会在每一行中循环。它可能没有显式地使用foreach,但会这样。我猜接下来的问题是你为什么要这么做?上面的代码似乎非常充分,可读性也很好,比通过linq可能更高…克里斯,我想真正的原因是看看它是否可以完成。我同意初始代码更具可读性,并将保留它。谢谢你的评论。