Silverlight 5 WinRT

public class Collection`1<T> public class Collection`1<T>
: IList`1<T>, ICollection`1<T>, IEnumerable`1<T>, IEnumerable, IList, ICollection : IList`1<T>, ICollection`1<T>, IEnumerable`1<T>, IEnumerable, IList, ICollection, IReadOnlyList`1<T>
public virtual Int32 Count { get; } public virtual Int32 Count { get; }
public virtual T Item { get; set; } public virtual T Item { get; set; }
  protected IList`1<T> Items { get; }
public virtual void Add(T item); public virtual void Add(T item);
public virtual void Clear(); public virtual void Clear();
  protected virtual void ClearItems();
public virtual Boolean Contains(T item); public virtual Boolean Contains(T item);
public virtual void CopyTo(T array, Int32 index); public virtual void CopyTo(T array, Int32 index);
public virtual IEnumerator`1<T> GetEnumerator(); public virtual IEnumerator`1<T> GetEnumerator();
public virtual Int32 IndexOf(T item); public virtual Int32 IndexOf(T item);
public virtual void Insert(Int32 index, T item); public virtual void Insert(Int32 index, T item);
  protected virtual void InsertItem(Int32 index, T item);
public virtual Boolean Remove(T item); public virtual Boolean Remove(T item);
public virtual void RemoveAt(Int32 index); public virtual void RemoveAt(Int32 index);
  protected virtual void RemoveItem(Int32 index);

  sealed class ReadOnlyDictionary`2<TKey, TValue>
  : ICollection`1<TKey>, IEnumerable`1<TKey>, IEnumerable, ICollection
  public virtual Int32 Count { get; }
  public virtual void CopyTo(TKey array, Int32 arrayIndex);
  public virtual IEnumerator`1<TKey> GetEnumerator();

public abstract class KeyedCollection`2<TKey, TItem> public abstract class KeyedCollection`2<TKey, TItem>
: Collection`1<TItem>, IList`1<TItem>, ICollection`1<TItem>, IEnumerable`1<TItem>, IEnumerable, IList, ICollection : Collection`1<TItem>, IList`1<TItem>, ICollection`1<TItem>, IEnumerable`1<TItem>, IEnumerable, IList, ICollection, IReadOnlyList`1<TItem>
public IEqualityComparer`1<TKey> Comparer { get; } public IEqualityComparer`1<TKey> Comparer { get; }
  protected IDictionary`2<TKey, TItem> Dictionary { get; }
public TItem Item { get; } public TItem Item { get; }
  protected void ChangeItemKey(TItem item, TKey newKey);
  protected virtual void ClearItems();
public Boolean Contains(TKey key); public Boolean Contains(TKey key);
  protected abstract virtual TKey GetKeyForItem(TItem item);
  protected virtual void InsertItem(Int32 index, TItem item);
public Boolean Remove(TKey key); public Boolean Remove(TKey key);
  protected virtual void RemoveItem(Int32 index);

public class ObservableCollection`1<T> public class ObservableCollection`1<T>
: Collection`1<T>, IList`1<T>, ICollection`1<T>, IEnumerable`1<T>, IEnumerable, IList, ICollection, INotifyCollectionChanged, INotifyPropertyChanged : Collection`1<T>, IList`1<T>, ICollection`1<T>, IEnumerable`1<T>, IEnumerable, IList, ICollection, IReadOnlyList`1<T>, INotifyCollectionChanged, INotifyPropertyChanged
public virtual event NotifyCollectionChangedEventHandler CollectionChanged; public virtual event NotifyCollectionChangedEventHandler CollectionChanged;
  protected virtual event PropertyChangedEventHandler PropertyChanged;
  protected IDisposable BlockReentrancy();
  protected void CheckReentrancy();
  protected virtual void ClearItems();
  protected virtual void InsertItem(Int32 index, T item);
  public void Move(Int32 oldIndex, Int32 newIndex);
  protected virtual void MoveItem(Int32 oldIndex, Int32 newIndex);
  protected virtual void OnCollectionChanged(NotifyCollectionChangedEventArgs e);
  protected virtual void OnPropertyChanged(PropertyChangedEventArgs e);
  protected virtual void RemoveItem(Int32 index);

public class ReadOnlyCollection`1<T> public class ReadOnlyCollection`1<T>
: IList`1<T>, ICollection`1<T>, IEnumerable`1<T>, IEnumerable, IList, ICollection : IList`1<T>, ICollection`1<T>, IEnumerable`1<T>, IEnumerable, IList, ICollection, IReadOnlyList`1<T>
public virtual Int32 Count { get; } public virtual Int32 Count { get; }
public virtual T Item { get; } public virtual T Item { get; }
  protected IList`1<T> Items { get; }
public virtual Boolean Contains(T value); public virtual Boolean Contains(T value);
public virtual void CopyTo(T array, Int32 index); public virtual void CopyTo(T array, Int32 index);
public virtual IEnumerator`1<T> GetEnumerator(); public virtual IEnumerator`1<T> GetEnumerator();
public virtual Int32 IndexOf(T value); public virtual Int32 IndexOf(T value);

  public class ReadOnlyDictionary`2<TKey, TValue>
  : IDictionary`2<TKey, TValue>, ICollection`1<KeyValuePair`2<TKey, TValue>>, IEnumerable`1<KeyValuePair`2<TKey, TValue>>, IEnumerable, IDictionary, ICollection, IReadOnlyDictionary`2<TKey, TValue>
  public virtual Int32 Count { get; }
  protected IDictionary`2<TKey, TValue> Dictionary { get; }
  public virtual TValue Item { get; }
  public KeyCollection<TKey, TValue> Keys { get; }
  public ValueCollection<TKey, TValue> Values { get; }
  public virtual Boolean ContainsKey(TKey key);
  public virtual IEnumerator`1<KeyValuePair`2<TKey, TValue>> GetEnumerator();
  public virtual Boolean TryGetValue(TKey key, out TValue& value);

public class ReadOnlyObservableCollection`1<T> public class ReadOnlyObservableCollection`1<T>
: ReadOnlyCollection`1<T>, IList`1<T>, ICollection`1<T>, IEnumerable`1<T>, IEnumerable, IList, ICollection, INotifyCollectionChanged, INotifyPropertyChanged : ReadOnlyCollection`1<T>, IList`1<T>, ICollection`1<T>, IEnumerable`1<T>, IEnumerable, IList, ICollection, IReadOnlyList`1<T>, INotifyCollectionChanged, INotifyPropertyChanged
  protected virtual event NotifyCollectionChangedEventHandler CollectionChanged;
  protected virtual event PropertyChangedEventHandler PropertyChanged;
  protected virtual void OnCollectionChanged(NotifyCollectionChangedEventArgs args);

  sealed class ReadOnlyDictionary`2<TKey, TValue>
  : ICollection`1<TValue>, IEnumerable`1<TValue>, IEnumerable, ICollection
  public virtual Int32 Count { get; }
  public virtual void CopyTo(TValue array, Int32 arrayIndex);
  public virtual IEnumerator`1<TValue> GetEnumerator();