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

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
}


我认为该示例无法正常工作,因为replace语句未将值返回任何值,但是我将其包含在内,因为我认为它清楚地传达了我要完成的工作。

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

最佳答案

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

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

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

10-13 03:36