C# 修剪方法在操作中不起作用



我想修剪所有实体的某个属性。但这entity.ForEach(x => x.PropertyName.Trim());似乎不起作用。执行操作后,该属性中仍有空格。那么知道如何轻松做到这一点吗?

首先,你不应该使用.ForEach()方法,你应该使用foreach循环。 其次,您遇到的实际问题是字符串是不可变的。 当你调用.Trim()字符串本身没有被修改时,Trim()返回一个新字符串,所以你需要把它分配给某些东西:

foreach(var e in entity)
{
e.PropertyName = e.PropertyName.Trim();
}

您可能还想处理您的命名。entity意味着一个单数,你可以非常清楚地看到它是某物的集合,因为我们迭代了它。 也许应该是entities

创建一个新的列表对象 (y(,然后使用修剪的值重新创建对象列表。这就是函数式编程。

entity.ForEach(x => y.Add(new entity{ PropertyName = x.PropertyName.Trim()}));

我之前在下面发布了代码 - 将不起作用,因为实体列表对象是不可变的。对于这个错误,我深表歉意。(忽略下面的代码(

entity.ForEach(x => x.PropertyName = x.PropertyName.Trim());

试试这个

entity.ForEach(x => 
{
x.PropertyName = x.PropertyName.Trim();
});

您从未分配从 Trim(( 方法返回的新字符串值。

如果您想删除所有空格

entity.ForEach(x => 
{
x.PropertyName = x.PropertyName.Trim().Replace(" ", String.Empty);
});

最新更新