Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从文本文件中删除选定的索引_C#_Selecteditem_Selectedindexchanged - Fatal编程技术网

C# 从文本文件中删除选定的索引

C# 从文本文件中删除选定的索引,c#,selecteditem,selectedindexchanged,C#,Selecteditem,Selectedindexchanged,我有一个列表框,显示文本文件中的行。我如何才能使它使我可以点击列表框中的一个项目,并将其从列表框和文本文件中删除 private void Read() { string filePath = @"//Filepath"; List<String> listOfDels = viewlist.listDeliveries(); using (var streamReader = new StreamReader(fil

我有一个列表框,显示文本文件中的行。我如何才能使它使我可以点击列表框中的一个项目,并将其从列表框和文本文件中删除

   private void Read()
    {
        string filePath = @"//Filepath";

        List<String> listOfDels = viewlist.listDeliveries();

        using (var streamReader = new StreamReader(filePath, Encoding.Default))
        {
            while (!streamReader.EndOfStream)
            {
                listOfDels.Add(streamReader.ReadLine());
                listBox1.Items.Clear();

                listBox1.Items.AddRange(listOfDels.ToArray());
            }
        }
    }

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    { //Remove line from txt file
    }
private void Read()
{
字符串filePath=@“//filePath”;
List listOfDels=viewlist.listDeliveries();
使用(var streamReader=newstreamreader(filePath,Encoding.Default))
{
而(!streamReader.EndOfStream)
{
添加(streamReader.ReadLine());
listBox1.Items.Clear();
listBox1.Items.AddRange(listOfDels.ToArray());
}
}
}
私有无效列表框1\u SelectedIndexChanged(对象发送方,事件参数e)
{//从txt文件中删除行
}

为什么每次读一行时都要清除
?如果要在我添加更多项时更新,我认为你做错了什么。您正在向列表中添加数据,然后立即清除列表--多次。将Clear和AddRange调用移到while循环之外。我知道这可能“技术上”是错误的,但它暂时有效。我只想知道如何通过选定的索引删除一行。因此,您只需调用
File.ReadAllLines(filePath)
。这不会返回错误,但也不会执行任何操作:S
string tempFile = Path.GetTempFileName();

using(var sr = new StreamReader("file.txt"))
{
using(var sw = new StreamWriter(tempFile))
{
    string line;

    while((line = sr.ReadLine()) != null)
    {
         if(line != "removeme")
             sw.WriteLine(line);
    }
}
}

File.Delete("file.txt");
File.Move(tempFile, "file.txt");