Честно говоря, я бы все сделал в памяти. Поддерживать данные в некоторой подходящей структуре (массив записей или экземпляр некоторого надлежащим образом разработанного класса). Всякий раз, когда структура памяти обновляется, делайте быстрое сохранение на диск, чтобы вы могли правильно инициализировать структуру, если вам нужно перезапустить приложение.
Чтобы сохранить на диск, я бы просто сериализовал структуру памяти, если это легко сделать в C # (я предполагаю, что есть встроенный механизм травления), или перевел бы ее в XML, или CSV, или что-нибудь подходящее.