【发布时间】:2017-01-10 11:15:36
【问题描述】:
我最初是使用这个 if 语句来检查一行是否包含字符串,并相应地删除它。
if (!currentFile[i].Contains("whattoremove"))
{
currentFile[i] = "";
}
File.WriteAllLines(logPath, File.ReadAllLines(logPath).Where(l => !string.IsNullOrWhiteSpace(l)));
不过好像很繁琐,所以我试着用 LINQ 写
string[] currentFile = File.ReadAllLines(logPath).Where(l => string.Contains("whattoremove")
令我惊讶的是,这里似乎不存在 string.Contains。有没有办法使用 LINQ 来做到这一点?
【问题讨论】:
-
原代码并没有删除该项,只是将其设置为一个空字符串。这是你想做的吗?
-
我最初所做的是将其设置为空字符串,并在最后使用 LINQ 删除所有添加的空格。我试图这样做的原因是因为它看起来更有效。我现在对问题进行了编辑以使其更清楚
-
好的,无论哪种情况,
string.Contains都是实例方法,而不是静态方法,因此在第二个示例中,您必须像这样使用它:l.Contains("whattoremove") -
stackoverflow.com/questions/21055423/… 可以帮助你获得灵感
标签: c#