VB.NET从包含在另一个列表中修改的坏词的列表中删除行?

时间:2013-04-09 17:32:47

标签: vb.net list

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

列表:

<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)

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

1 个答案:

答案 0 :(得分: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)