//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//------------------------------------------------------------------------------
namespace System.Collections.Specialized {
using System.Diagnostics;
using System.Collections;
///
/// Represents a collection of strings.
///
[
Serializable,
]
public class StringCollection : IList {
private ArrayList data = new ArrayList();
///
/// Represents the entry at the specified index of the .
///
public string this[int index] {
get {
return ((string)data[index]);
}
set {
data[index] = value;
}
}
///
/// Gets the number of strings in the
/// .
///
public int Count {
get {
return data.Count;
}
}
bool IList.IsReadOnly
{
get
{
return false;
}
}
bool IList.IsFixedSize
{
get
{
return false;
}
}
///
/// Adds a string with the specified value to the
/// .
///
public int Add(string value) {
return data.Add(value);
}
///
/// Copies the elements of a string array to the end of the .
///
public void AddRange(string[] value) {
if (value == null) {
throw new ArgumentNullException("value");
}
data.AddRange(value);
}
///
/// Removes all the strings from the
/// .
///
public void Clear() {
data.Clear();
}
///
/// Gets a value indicating whether the
/// contains a string with the specified
/// value.
///
public bool Contains(string value) {
return data.Contains(value);
}
///
/// Copies the values to a one-dimensional instance at the
/// specified index.
///
public void CopyTo(string[] array, int index) {
data.CopyTo(array, index);
}
///
/// Returns an enumerator that can iterate through
/// the .
///
public StringEnumerator GetEnumerator() {
return new StringEnumerator(this);
}
///
/// Returns the index of the first occurrence of a string in
/// the .
///
public int IndexOf(string value) {
return data.IndexOf(value);
}
///
/// Inserts a string into the at the specified
/// index.
///
public void Insert(int index, string value) {
data.Insert(index, value);
}
///
/// Gets a value indicating whether the is read-only.
///
public bool IsReadOnly {
get {
return false;
}
}
///
/// Gets a value indicating whether access to the
///
/// is synchronized (thread-safe).
///
public bool IsSynchronized {
get {
return false;
}
}
///
/// Removes a specific string from the
/// .
///
public void Remove(string value) {
data.Remove(value);
}
///
/// Removes the string at the specified index of the .
///
public void RemoveAt(int index) {
data.RemoveAt(index);
}
///
/// Gets an object that can be used to synchronize access to the .
///
public object SyncRoot {
get {
return data.SyncRoot;
}
}
object IList.this[int index] {
get {
return this[index];
}
set {
this[index] = (string)value;
}
}
int IList.Add(object value) {
return Add((string)value);
}
bool IList.Contains(object value) {
return Contains((string) value);
}
int IList.IndexOf(object value) {
return IndexOf((string)value);
}
void IList.Insert(int index, object value) {
Insert(index, (string)value);
}
void IList.Remove(object value) {
Remove((string)value);
}
void ICollection.CopyTo(Array array, int index) {
data.CopyTo(array, index);
}
IEnumerator IEnumerable.GetEnumerator() {
return data.GetEnumerator();
}
}
///
/// [To be supplied.]
///
public class StringEnumerator {
private System.Collections.IEnumerator baseEnumerator;
private System.Collections.IEnumerable temp;
internal StringEnumerator(StringCollection mappings) {
this.temp = (IEnumerable)(mappings);
this.baseEnumerator = temp.GetEnumerator();
}
///
/// [To be supplied.]
///
public string Current {
get {
return (string)(baseEnumerator.Current);
}
}
///
/// [To be supplied.]
///
public bool MoveNext() {
return baseEnumerator.MoveNext();
}
///
/// [To be supplied.]
///
public void Reset() {
baseEnumerator.Reset();
}
}
}