如何按行号从文本文件中删除一行?并按索引号从列表视图中删除项目

本文关键字:索引 列表 删除项目 视图 一行 文件 文本 何按行 删除 | 更新日期: 2023-09-27 18:36:16

private void btnDel_Click(object sender, EventArgs e)
        {
            OpenPop.Pop3.Pop3Client PopClient = new OpenPop.Pop3.Pop3Client();
                PopClient.Connect("mail", 110, false);
                PopClient.Authenticate("me", "me",
                    OpenPop.Pop3.AuthenticationMethod.UsernameAndPassword);
                DeleteMessageByMessageId(PopClient, selectedemailindex.ToString());
            // Here i want to update the text file and the listview by deleting the line using the index number(selectedemailindex).
        }

ListView 控件变量为 lvnf。并且文本文件存储在变量电子邮件IDSFile中。用于删除文本文件中的行号和按索引删除 ListView 中的行的索引号存储在 selectedemailindex 中。

如何按行号从文本文件中删除一行?并按索引号从列表视图中删除项目

    List<string> lines = File.ReadAllLines("c:''a.txt").ToList();
    lines.RemoveAt(linenumber); 
Listview1.Items.RemoveAt(linenumber);

我建议使用一个简单的Linq

  var lines = File
    .ReadLines("@c:'MyText.txt")
    .Where((line, index) => index != lineNumber);

然后,您可能需要阅读以下行:

  foreach (var line in lines) {
    ...
  }

将它们写回文件中

  File.WriteAllLines(@"C:'MyOther.txt", lines);

至于ListView,您似乎正在寻找RemoveAt

  MyListView.Items.RemoveAt(lineNumber);   

附言您在问题中的代码似乎与问题完全无关