Para este ejemplo usaremos un archivo de texto sencillo con sólo tres líneas:

El código siguiente te permitirá leer el texto del archivo entero, usando System.IO.File.ReadAllText.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LeerArchivoTxtCsharp
{
class Program
{
static void Main(string[] args)
{
string text = System.IO.File.ReadAllText(@"C:\ruta\archivo.txt");
System.Console.WriteLine("Contenido del archivo = {0}", text);
Console.WriteLine("Presione cualquier tecla para salir.");
System.Console.ReadKey();
}
}
}

El resultado en consola es el siguiente:
Este segundo método te permitirá leer línea por línea con System.IO.File.ReadAllLines:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LeerArchivoTxtCsharp
{
class Program
{
static void Main(string[] args)
{
string[] lines = System.IO.File.ReadAllLines(@"C:\ruta\archivo.txt");
System.Console.WriteLine("Contenido del archivo = ");
foreach (string line in lines)
{
// Use a tab to indent each line of the file.
Console.WriteLine("\t" + line);
}
Console.WriteLine("Presione cualquier tecla para salir.");
System.Console.ReadKey();
}
}
}
El resultado es el siguiente:

En consola se aprecia que algunos caracteres no se despliegan correctamente, pero el contenido se lee correctamente, el problema sólo ocurre al imprimir los caracteres en consola.