int IList.Add(object value) { string item = ExtensionMethods.ConvertToString(value); if (item == null) { throw new ArgumentNullException("value"); } if ((item = item.Trim()).Length == 0 || !ClassNameRegex.IsMatch(item)) { throw new ArgumentOutOfRangeException("value"); } int index; Monitor.Enter(SyncRoot); try { index = _innerList.IndexOf(item); if (index < 0) { index = _innerList.Count; _innerList.Add(item); } } finally { Monitor.Exit(SyncRoot); } return(index); }
object IList.this[int index] { get { return(_innerList[index]); } set { this[index] = ExtensionMethods.ConvertToString(value); } }
void IList.Insert(int index, object value) { Insert(index, ExtensionMethods.ConvertToString(value)); }