Beispiel #1
0
        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);
        }
Beispiel #2
0
 object IList.this[int index] {
     get { return(_innerList[index]); } set { this[index] = ExtensionMethods.ConvertToString(value); }
 }
Beispiel #3
0
 void IList.Insert(int index, object value)
 {
     Insert(index, ExtensionMethods.ConvertToString(value));
 }