如何从行号中删除文本文件中的行?并按索引号从ListView中删除项目?

时间:2016-02-26 10:44:50

标签: c# .net winforms

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。 并且文本文件存储在变量emailsIDSFile中。 用于删除文本文件中的行号并通过索引删除ListView中的行的索引号存储在selectedemailindex中。

2 个答案:

答案 0 :(得分:2)

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

Listview1.Items.RemoveAt(linenumber);

答案 1 :(得分:1)

我建议使用简单的 Linq

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

那么您可能需要阅读这些内容:

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

将它们写回文件

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

至于ListViewRemoveAt似乎正在寻找:

  MyListView.Items.RemoveAt(lineNumber);   

P.S。问题中的代码似乎与问题完全无关。