c# - 删除列表中找到的字符串部分

标签 c# lambda

我正在尝试找到一种优雅的方法来从单个字符串中删除列表中包含的数据。下面显示了一个简单的完整示例,但它不起作用:

private string removeWebSuffixes()
{ 
    string siteName="someSite.com";

    List<string> siteNames=new List<string>{siteName};
    List<string> domainSuffixes=new List<string>{".net",".com",".gov"};

    domainSuffixes.ForEach(x=>siteName.Replace(x,""));

    return siteName;//actually, should return result of siteName.replace statement
}

我认为这个例子不起作用,因为替换语句没有返回任何值,但我已经包含它,因为我认为它清楚地传达了我想要完成的任务。

我打赌很容易做到这一点(我不是指 foreach 循环),但我没有看到它。然而。

最佳答案

Replace() 实际上并不更改字符串。如果要保留更改,则需要将返回值写回原始字符串:

domainSuffixes.ForEach(x => siteName = siteName.Replace(x, ""));

关于c# - 删除列表中找到的字符串部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17100157/

相关文章:

c# - 如何将字节数组转换为字符串?

C# 按实体类型自动创建存储库

c# - 使用 Exists 谓词执行 .. While.. 操作。访问修改后的闭包?

c# - 将 Func<T1,T2> 初始化为扩展方法

clojure 中的 Java lambda 回调

c# - 有没有办法从静态上下文中获取 Session 对象?

c# - 使用流利的 nhibernate 映射实体 oneToMany

python - 过滤引号内的 df 值

python - 为什么这段 Python 代码(将列表扩展与自身的 map 组合在一起)会使我的系统死机?

c# - 将字符缓冲区从 .NET 传递到 COM 并更新它