Почему бы просто не вернуть IEnumerable<T>
? Если вы просто хотите позволить пользователям перечислять список без его изменения *, IEnumerable является очевидным выбором.
Если вы хотите иметь доступный только для чтения интерфейс интерфейса LinkedList, вы можете обернуть LinkedList, перенаправить методы только для чтения в свернутый список и отрицать любые изменения.
*) Имейте в виду, что ни ReadOnlyCollection, ни IEnumerable не позволят вызывающим сторонам изменять состояние объектов в случае набора ссылочных типов. Если объекты должны быть только для чтения, вам нужно реализовать это как часть их типа.