//
// System.Collections.ObjectModel.ReadOnlyCollection
//
-// Author:
+// Authors:
// Zoltan Varga (vargaz@gmail.com)
// David Waite (mass@akuma.org)
+// Marek Safar (marek.safar@gmail.com)
//
// (C) 2005 Novell, Inc.
// (C) 2005 David Waite
//
// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
// Copyright (C) 2005 David Waite
+// Copyright (C) 2011 Xamarin, Inc (http://www.xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-#if NET_2_0
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
+using System.Diagnostics;
namespace System.Collections.ObjectModel
{
[ComVisible (false)]
[Serializable]
- public class ReadOnlyCollection <T> : IList <T>, ICollection <T>, IEnumerable <T>, IList, ICollection, IEnumerable
+ [DebuggerDisplay ("Count={Count}")]
+ [DebuggerTypeProxy (typeof (CollectionDebuggerView<>))]
+ public class ReadOnlyCollection<T> : IList<T>, IList
+#if NET_4_5
+ , IReadOnlyList<T>
+#endif
{
IList <T> list;
throw new NotSupportedException ();
}
- public bool Contains (T item)
+ public bool Contains (T value)
{
- return list.Contains (item);
+ return list.Contains (value);
}
public void CopyTo (T [] array, int index)
return list.GetEnumerator ();
}
- public int IndexOf (T item)
+ public int IndexOf (T value)
{
- return list.IndexOf (item);
+ return list.IndexOf (value);
}
void IList<T>.Insert (int index, T item)
}
#region Not generic interface implementations
- void ICollection.CopyTo (Array array, int arrayIndex)
+ void ICollection.CopyTo (Array array, int index)
{
- ((ICollection)list).CopyTo (array, arrayIndex);
+ ((ICollection)list).CopyTo (array, index);
}
IEnumerator IEnumerable.GetEnumerator ()
return ((IEnumerable) list).GetEnumerator ();
}
- int IList.Add (object item)
+ int IList.Add (object value)
{
throw new NotSupportedException ();
}
throw new NotSupportedException ();
}
- bool IList.Contains (object item)
+ bool IList.Contains (object value)
{
- if (Collection <T>.IsValidItem (item))
- return list.Contains ((T) item);
+ if (CollectionHelpers.IsValidItem<T> (value))
+ return list.Contains ((T) value);
return false;
}
- int IList.IndexOf (object item)
+ int IList.IndexOf (object value)
{
- if (Collection <T>.IsValidItem (item))
- return list.IndexOf ((T) item);
+ if (CollectionHelpers.IsValidItem<T> (value))
+ return list.IndexOf ((T) value);
return -1;
}
- void IList.Insert (int index, object item)
+ void IList.Insert (int index, object value)
{
throw new NotSupportedException ();
}
- void IList.Remove (object item)
+ void IList.Remove (object value)
{
throw new NotSupportedException ();
}
#endregion
}
}
-#endif