My example on how to read file in chunks:
using System;
using System.IO;
using System.Text;

namespace ReadFileInChunks
{
    class Program
    {
        static void Main(string[] args)
        {
            int lineNumber = 0;

            long beginBytes = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;
            Console.WriteLine($"Bytes: {beginBytes}");
            Console.WriteLine("");
            Console.ReadKey();

            long beginMemory = GC.GetTotalMemory(true);
            Console.WriteLine($"Memory: {beginMemory}");
            Console.WriteLine("");
            Console.ReadKey();

            //string wholeFile = File.ReadAllText("test.txt");

            //Console.WriteLine("");
            //Console.WriteLine("******************");
            //Console.WriteLine("*    ReadAllText *");
            //Console.WriteLine("******************");
            //Console.WriteLine("");

            //beginBytes = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;
            //Console.WriteLine($"Bytes: {beginBytes}");
            //Console.WriteLine("");
            //Console.ReadKey();

            //beginMemory = GC.GetTotalMemory(true);
            //Console.WriteLine($"Memory: {beginMemory}");
            //Console.WriteLine("");
            //Console.ReadKey();

            using (FileStream fileStream = new FileStream("test.txt", FileMode.Open, FileAccess.Read))
            {
                int count = 10000;
                byte[] buffer = new byte[count];

                int read = 1;
                while (read > 0)
                {
                    read = fileStream.Read(buffer, 0, count);
                    string partOfFile = Encoding.UTF8.GetString(buffer, 0, read);
                    using (MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(partOfFile)))
                    {
                        using (StreamReader streamReader = new StreamReader(memoryStream, Encoding.UTF8, true))
                        {
                            while (!streamReader.EndOfStream)
                            {
                                Console.WriteLine($"{lineNumber++}: {streamReader.ReadLine()}");
                            }
                        }
                    }
                    Console.WriteLine("");
                    Console.WriteLine("******************");
                    Console.WriteLine("*    Next block  *");
                    Console.WriteLine("******************");
                    Console.WriteLine("");

                    long bytes = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;
                    Console.WriteLine($"Bytes at the beginning: {beginBytes}, current bytes: {bytes}");

                    Console.WriteLine("");
                    Console.ReadKey();

                    long memory = GC.GetTotalMemory(true);
                    Console.WriteLine($"Memory at the beginning: {beginMemory}, current memory: {memory}");
                    Console.WriteLine("");
                    Console.ReadKey();
                }
            }
            Console.WriteLine("Press any key");
            Console.ReadKey();
        }
    }
}