-1

我正在寻找想法,如何从另一个自定义列表中删除包含坏词的选定列表中的行?这是一个小例子:

列表:

<Index item="25" name="Colligan">
<Index item="26" name="Michael">
<Index item="229" name="Julie">
<Index item="288" name="Robby">
<Index item="200" name="Andrea">
<Index item="299" name="Tommy">

带有坏词的自定义列表:

  • 科利根
  • 朱丽叶
  • 安德烈亚
  • 汤米

所以在运行清理过程之后,我得到了这样的清理列表:

<Index item="26" name="Michael">
<Index item="288" name="Robby">

我发现了如何删除一两个自定义坏词的小应用程序,但问题是,有时我会有超过 1000 个坏词。期待每一个解决方案。

我发现这段代码对一个坏词很有用,但没有列出它们:

Dim lines() As String
        Dim outputlines As New List(Of String)
        Dim searchString As String = "3"
        lines = IO.File.ReadAllLines("C:\Temp\test.txt")
        For Each line As String In lines
            If line.Contains(searchString) = False Then
                outputlines.Add(line)
            End If
        Next

        IO.File.WriteAllLines("C:\Temp\test.txt", outputlines)

我是编程初学者,所以不要为我的问题生气。谢谢

4

1 回答 1

1

原则上,您的代码看起来应该可以工作。但是,它的唯一问题是它只查找一个坏词。您可以使用嵌套循环将其更改为搜索所有单词,如下所示:

Dim outputlines As New List(Of String)()
Dim badWords() As String = File.ReadAllLines("C:\Temp\badwords.txt")
For Each line As String In File.ReadAllLines("C:\Temp\test.txt")
    Dim badWordFound As Boolean = False
    For Each badWord As String in badWords
        If line.Contains(badWord) Then
            badWordFound = True
            Exit For
        End If
    Next
    If Not badWordFound Then
        outputlines.Add(line)
    End If
Next
File.WriteAllLines("C:\Temp\test.txt", outputlines)
于 2013-04-09T19:08:20.027 回答