1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- namespace WinSCP
- {
- internal class ReadOnlyInteropCollectionHelper<T> : ICollection<T>
- {
- public void InternalAdd(T item)
- {
- _list.Add(item);
- }
- public void InternalRemoveFirst()
- {
- _list.RemoveAt(0);
- }
- public T this[int index]
- {
- get
- {
- return _list[index];
- }
- set
- {
- throw CreateReadOnlyException();
- }
- }
- #region ICollection<T> Members
- public void Add(T item)
- {
- throw CreateReadOnlyException();
- }
- public void Clear()
- {
- throw CreateReadOnlyException();
- }
- public bool Contains(T item)
- {
- return _list.Contains(item);
- }
- public void CopyTo(T[] array, int arrayIndex)
- {
- _list.CopyTo(array, arrayIndex);
- }
- public int Count
- {
- get { return _list.Count; }
- }
- public bool IsReadOnly
- {
- get { return true; }
- }
- public bool Remove(T item)
- {
- throw CreateReadOnlyException();
- }
- #endregion
- #region IEnumerable<T> Members
- public IEnumerator<T> GetEnumerator()
- {
- return _list.GetEnumerator();
- }
- #endregion
- #region IEnumerable Members
- IEnumerator IEnumerable.GetEnumerator()
- {
- return _list.GetEnumerator();
- }
- #endregion
- private static Exception CreateReadOnlyException()
- {
- return new InvalidOperationException("Collection is read-only.");
- }
- private readonly List<T> _list = new List<T>();
- }
- }
|