исходите из того, как вам потом эти данные использовать.
предположим, если бы эту коллекцию пришлось отображать по уникальному имени, то можно, например, сразу сложить в словарь, в котором ключ - имя процесса:
var processes = new Dictionary<string, Process[]>
{
{ "procname1", [proc1] },
{ "procname2", [proc21, proc22] },
};
а для чего объект потока сериализуете? вам из файла строку вычитать (File.ReadAllText), а не потоки городить.
(да и запись в общем-то тоже можно переделать на File.WriteAllText)
лучше прочитать эту, чем не читать ничего;
лучше начать читать эту сейчас, чем другую, но потом;
главное втянуться в экосистему, а новые штуки можно изучать по мере надобности
решарпер не установлен случайно? этот товарищ (как и phpStorm) по умолчанию индексирует (а значит и считывает целиком) все файлы проекта, чтобы быстрее там что-то своё показывать. в настройках отключается
даже если не установлен, то возможно студия и сама уже тоже индексирует файлы. попробуйте в этом направлении поискать
RoadToTheHell, да, экранирование обратным слешем.
а в Replace я не у верен что вам вообще нужны регулярные выражения. возможно, что string.Replace будет достаточно.
если нет, то также перед тем как использовать строку в качестве регулярного выражения нужно экранировать все "управляющие" символы (если не предполагается, что эти символы должны быть "управляющими"). для этого есть метод Regex.Escape
вот этот сервис можно попробовать: https://ifttt.com
для твича есть встроенный триггер "если начался стрим на канале", а группу вк наверняка можно пнуть по апи через webhook
исходите из того, как вам потом эти данные использовать.
предположим, если бы эту коллекцию пришлось отображать по уникальному имени, то можно, например, сразу сложить в словарь, в котором ключ - имя процесса: