C5 springs to mind, but I'm not sure how fast it is. It has been around for years, and is very stable.
Additionally, List<T>.AsReadOnly()
does the job rather well IMO, but unfortunately there is no equivalent for dictionaries or arbitrary ICollection<T>
's.