Merhaba arkadaşlar, yine ben ve yine bir sorun

Geçen gün sorduğum soruya sağolsun birçok üstadım yardım etti. Onlar sayesinde birkaç şey daha öğrendim tekrardan teşekkür ederim.

Şimdiki sorunum silme işleminde olan bazı sıkıntılar.
Rehber.txt deki bir satırı siliyorum. fakat sildikten sonra rehber.txt e en son eklenen dosyadan aynısından tekrar ekliyor rehber.txt e. Birde son elemanı silmek istediğimde sildirmiyor. rehber.txt'e o değerin önüne bir satır açıp # işareti koyuyor acaba Bunların sebebi ne olabilir?

İnsallah anlatabilmişimdir derdimi.
İşte o silme kodları
            FileStream fs = new FileStream(".\\rehber.txt", FileMode.Open);
            StreamReader sr = new StreamReader(fs);
            string satir;
            string[] rehberdekiTumSatirlar = new string[1000];
            int i = 0;//dizi için başlangıç noktası
            do
            {
                satir = sr.ReadLine();
                if (satir != "")
                {
                    String[] satirlar = satir.Split('#');

                    if (isim.Text == satirlar[0])
                    {

                        
                        i--;


                    }

                    else  //silinmeyecek satırlar
                    {
                        rehberdekiTumSatirlar[i] = satir;

                    }

                    i++;

                }
            } while (sr.EndOfStream != true);
            sr.Close();


            fs = new FileStream(".\\rehber.txt", FileMode.OpenOrCreate);
            StreamWriter yaz = new StreamWriter(fs);
            for (int b = 0; b < i; b++)
            {
                yaz.WriteLine(rehberdekiTumSatirlar[b]);
            }
            yaz.Close();
            this.Close();
            MessageBox.Show("Silindi");
        }