Вичитування інформації: погоджуюся, що не зовсім зрозуміло, що малося на увазі. Строки з дублікатами не зберігаються, а відразу замінюють попередні якщо такі є, але щоб їх порівняти, конкретну строку все одно потрібно зчитати. Справа у тому, що в C# нема прямого контролю над використанням ресурсів, це автоматично робить Garbage Collector. Через це, навіть якщо строка була замінена на нову, вона все одно ще деякий час існує в пам’яті, поки GC не звільнить займані нею ресурси.
Мультиплікатора: на початку розробки увесь файл зчитувався у двомірний масив, де кожне поле, не строка, було окремим стрінгом. Це сталося через нерозуміння з якими об’ємами даних доведеться працювати. Потім вже кожна строка, а не поле, зберігалася як масив байтів
Так, це там є, але воно для класів які як раз реалізують IDisposable. Звичайні масиви в C# його не реалізують, тому їх не можна «затерти» руками, ними автоматично займається GC