vb.net - 从文本文件中删除重复的单词

标签 vb.net file text words

我有一个文本文件,包含近 45,000 个单词,每行一个单词。数千个这样的词出现了10次以上。我想创建一个新文件,其中没有重复的单词。我使用了 Stream reader,但它只读取文件一次。怎样才能去掉那些重复的词呢?请帮我。谢谢 我的代码是这样的

Try
        File.OpenText(TextBox1.Text)
    Catch ex As Exception
        MsgBox(ex.Message)
        Exit Sub
    End Try

    Dim line As String = String.Empty
    Dim OldLine As String = String.Empty
    Dim sr = File.OpenText(TextBox1.Text)

    line = sr.ReadLine
    OldLine = line

    Do While sr.Peek <> -1
        Application.DoEvents()
        line = sr.ReadLine
        If OldLine <> line Then
                My.Computer.FileSystem.WriteAllText(My.Computer.FileSystem.SpecialDirectories.Desktop & "\Splitted File without Repeats.txt", line & vbCrLf, True)
        End If

        OldLine = line
    Loop


    sr.Close()
    System.Diagnostics.Process.Start(My.Computer.FileSystem.SpecialDirectories.Desktop & "\Splitted File without Repeats.txt")
    MsgBox("Loop terminated. Stream Reader Closed." & vbCrLf)

最佳答案

您可以使用 LINQ 的 Distinct() 方法来实现此目的。

这适用于较小的文件:

Dim lines As String() = File.ReadAllLines("yourfile.txt")
File.WriteAllLines("yourfile.txt", lines.Distinct().ToArray())

关于vb.net - 从文本文件中删除重复的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38680776/

相关文章:

file - Torrent 文件协议(protocol) - 自定义字段

linux - rsync with --remove-sent-files 选项并打开文件

java - 使用扫描仪类更改文本文件中的特定文本(java)

c++ - 任何用于一般用途的分层、树状编辑器?

css - 标题自动添加(-)

javascript - 在窗口中居中动态生成的表格单元格

asp.net - 如何获取asp.net下拉列表的选定值并将其存储在 session 变量中?

java - 在 Java 中,是否可以使用资源路径获取 WAR 类路径中的目录文件列表?

vb.net - VB 2010发送消息: sending binary data to another app

vb.net - PDFsharp Beta 1.50 PdfTextField,空异常错误,但仍然有效?