int IList.Add(object value) { CollectionWrapper <T> .VerifyValueType(value); this.Add((T)value); return(this.Count - 1); }
void IList.Remove(object value) { if (!CollectionWrapper <T> .IsCompatibleObject(value)) { return; } this.Remove((T)value); }
bool IList.Contains(object value) { if (CollectionWrapper <T> .IsCompatibleObject(value)) { return(this.Contains((T)value)); } return(false); }
private static void VerifyValueType(object value) { if (!CollectionWrapper <T> .IsCompatibleObject(value)) { throw new ArgumentException( "The value '{0}' is not of type '{1}' and cannot be used in this generic collection.".FormatWith( (IFormatProvider)CultureInfo.InvariantCulture, value, (object)typeof(T)), nameof(value)); } }
void IList.Insert(int index, object value) { if (this._genericCollection != null) { throw new InvalidOperationException("Wrapped ICollection<T> does not support Insert."); } CollectionWrapper <T> .VerifyValueType(value); this._list.Insert(index, (object)(T)value); }
int IList.IndexOf(object value) { if (this._genericCollection != null) { throw new InvalidOperationException("Wrapped ICollection<T> does not support IndexOf."); } if (CollectionWrapper <T> .IsCompatibleObject(value)) { return(this._list.IndexOf((object)(T)value)); } return(-1); }
object IList.this[int index] { get { if (this._genericCollection != null) { throw new InvalidOperationException("Wrapped ICollection<T> does not support indexer."); } return(this._list[index]); } set { if (this._genericCollection != null) { throw new InvalidOperationException("Wrapped ICollection<T> does not support indexer."); } CollectionWrapper <T> .VerifyValueType(value); this._list[index] = (object)(T)value; } }