Вы можете сериализовать этот ArrayList с помощью DataContractJsonSerializer и сохранить его как JSON, чтобы позже вы могли десериализовать его и восстановить состояние ArrayList.Даже в клиентском коде (JavaScript), например, с функцией $ .parseJSON jQuery.
Кстати, хранить объект в файлах cookie - очень плохая идея, поскольку ограничение размера данных может отличаться, но этодостаточно ниже, чтобы избежать хранения больших наборов данных.
Вам следует рассмотреть возможность использования файлов cookie для хранения идентификаторов и нескольких ограниченных пользовательских конфигураций клиента, а также использовать оба для запроса кода сервера для получения других, более конкретных данных.