using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Text; namespace Google.ProtocolBuffers.Collections { public static class Lists { public static IList AsReadOnly(IList list) { return Lists.AsReadOnly(list); } } /// /// Utilities class for dealing with lists. /// public static class Lists { static readonly ReadOnlyCollection empty = new ReadOnlyCollection(new T[0]); /// /// Returns an immutable empty list. /// public static ReadOnlyCollection Empty { get { return empty; } } /// /// Returns either the original reference if it's already read-only, /// or a new ReadOnlyCollection wrapping the original list. /// public static IList AsReadOnly(IList list) { return list.IsReadOnly ? list : new ReadOnlyCollection(list); } } }