Cómo leer las últimas líneas "n" del archivo de registro

necesita un fragmento de código que lea las últimas "n líneas" de un archivo de registro. Se me ocurrió el siguiente código de la red. Soy un poco nuevo en C sharp. Dado que el archivo de registro puede ser bastante grande, quiero evitar la sobrecarga de leer todo el archivo. ¿Alguien puede sugerir alguna mejora en el rendimiento? yorealmente no quiero leer cada personaje y cambiar de posición.

   var reader = new StreamReader(filePath, Encoding.ASCII);
            reader.BaseStream.Seek(0, SeekOrigin.End);
            var count = 0;
            while (count <= tailCount)
            {
                if (reader.BaseStream.Position <= 0) break;
                reader.BaseStream.Position--;
                int c = reader.Read();
                if (reader.BaseStream.Position <= 0) break;
                reader.BaseStream.Position--;
                if (c == '\n')
                {
                    ++count;
                }
            }

            var str = reader.ReadToEnd();

Respuestas a la pregunta(7)

Su respuesta a la pregunta