实现了IEnumerable接口的GetEnumerator 即可使用 Foreach遍历,返回一个IEnumerator对象
#region 程序集 mscorlib.dll, v4.0.0.0
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll
#endregion //此处的ArrayList内部实现了
GetEnumerator方法,故可以遍历。
此方法是虚函数方式实现,故可以被重写 override.
如果不实现上面的那个方法,对象就不可能返回一个IEnumerator对象,没有IEnumerator对象,就不可能调用方法MoveNext(),调用不了MoveNext,就不可能循环的了 using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime;
using System.Runtime.InteropServices;
using System.Security; namespace System.Collections
{
// 摘要:
// 使用大小会根据需要动态增加的数组来实现 System.Collections.IList 接口。
[Serializable]
[ComVisible(true)]
[DebuggerDisplay("Count = {Count}")]
[DebuggerTypeProxy(typeof(ArrayList.ArrayListDebugView))]
public class ArrayList : IList, ICollection, IEnumerable, ICloneable
{
// 摘要:
// 初始化 System.Collections.ArrayList 类的新实例,该实例为空并且具有默认初始容量。
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public ArrayList();
//
// 摘要:
// 初始化 System.Collections.ArrayList 类的新实例,该实例包含从指定集合复制的元素并且具有与所复制的元素数相同的初始容量。
//
// 参数:
// c:
// System.Collections.ICollection,它的元素被复制到新列表中。
//
// 异常:
// System.ArgumentNullException:
// c 为 null。
public ArrayList(ICollection c);
//
// 摘要:
// 初始化 System.Collections.ArrayList 类的新实例,该实例为空并且具有指定的初始容量。
//
// 参数:
// capacity:
// 新列表最初可以存储的元素数。
//
// 异常:
// System.ArgumentOutOfRangeException:
// capacity 小于零。
public ArrayList(int capacity); // 摘要:
// 获取或设置 System.Collections.ArrayList 可包含的元素数。
//
// 返回结果:
// System.Collections.ArrayList 可包含的元素数。
//
// 异常:
// System.ArgumentOutOfRangeException:
// System.Collections.ArrayList.Capacity 设置为小于 System.Collections.ArrayList.Count
// 的值。
//
// System.OutOfMemoryException:
// 系统中没有足够的可用内存。
public virtual int Capacity { get; set; }
//
// 摘要:
// 获取 System.Collections.ArrayList 中实际包含的元素数。
//
// 返回结果:
// System.Collections.ArrayList 中实际包含的元素数。
public virtual int Count { get; }
//
// 摘要:
// 获取一个值,该值指示 System.Collections.ArrayList 是否具有固定大小。
//
// 返回结果:
// 如果 System.Collections.ArrayList 具有固定大小,则为 true;否则为 false。 默认值为 false。
public virtual bool IsFixedSize { get; }
//
// 摘要:
// 获取一个值,该值指示 System.Collections.ArrayList 是否为只读。
//
// 返回结果:
// 如果 System.Collections.ArrayList 为只读,则为 true;否则为 false。 默认值为 false。
public virtual bool IsReadOnly { get; }
//
// 摘要:
// 获取一个值,该值指示是否同步对 System.Collections.ArrayList 的访问(线程安全)。
//
// 返回结果:
// 如果对 System.Collections.ArrayList 的访问是同步的(线程安全),则为 true;否则为 false。 默认值为 false。
public virtual bool IsSynchronized { get; }
//
// 摘要:
// 获取可用于同步对 System.Collections.ArrayList 的访问的对象。
//
// 返回结果:
// 可用于同步对 System.Collections.ArrayList 的访问的对象。
public virtual object SyncRoot { get; } // 摘要:
// 获取或设置位于指定索引处的元素。
//
// 参数:
// index:
// 要获得或设置的元素从零开始的索引。
//
// 返回结果:
// 位于指定索引处的元素。
//
// 异常:
// System.ArgumentOutOfRangeException:
// index 小于零。 - 或 - index 等于或大于 System.Collections.ArrayList.Count。
public virtual object this[int index] { get; set; } // 摘要:
// 为特定的 System.Collections.IList 创建 System.Collections.ArrayList 包装。
//
// 参数:
// list:
// 要包装的 System.Collections.IList。
//
// 返回结果:
// System.Collections.IList 周围的 System.Collections.ArrayList 包装。
//
// 异常:
// System.ArgumentNullException:
// list 为 null。
public static ArrayList Adapter(IList list);
//
// 摘要:
// 将对象添加到 System.Collections.ArrayList 的结尾处。
//
// 参数:
// value:
// 要添加到 System.Collections.ArrayList 的末尾处的 System.Object。 该值可以为 null。
//
// 返回结果:
// System.Collections.ArrayList 索引,已在此处添加了 value。
//
// 异常:
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。 - 或 - System.Collections.ArrayList 具有固定大小。
public virtual int Add(object value);
//
// 摘要:
// 将 System.Collections.ICollection 的元素添加到 System.Collections.ArrayList 的末尾。
//
// 参数:
// c:
// System.Collections.ICollection,其元素应被添加到 System.Collections.ArrayList 的末尾。
// 集合本身不能为 null,但它可以包含为 null 的元素。
//
// 异常:
// System.ArgumentNullException:
// c 为 null。
//
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。 - 或 - System.Collections.ArrayList 具有固定大小。
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public virtual void AddRange(ICollection c);
//
// 摘要:
// 使用默认的比较器在整个已排序的 System.Collections.ArrayList 中搜索元素,并返回该元素从零开始的索引。
//
// 参数:
// value:
// 要定位的 System.Object。 该值可以为 null。
//
// 返回结果:
// 如果找到 value,则为已排序的 System.Collections.ArrayList 中从零开始的 value 索引;否则为一个负数,它是大于
// value 的下一个元素索引的按位求补,如果没有更大的元素,则为 System.Collections.ArrayList.Count 的按位求补。
//
// 异常:
// System.ArgumentException:
// 无论是 value 还是 System.Collections.ArrayList 的元素都不实现 System.IComparable 接口。
//
// System.InvalidOperationException:
// value 与 System.Collections.ArrayList 的元素类型不同。
public virtual int BinarySearch(object value);
//
// 摘要:
// 使用指定的比较器在整个已排序的 System.Collections.ArrayList 中搜索元素,并返回该元素从零开始的索引。
//
// 参数:
// value:
// 要定位的 System.Object。 该值可以为 null。
//
// comparer:
// 比较元素时要使用的 System.Collections.IComparer 实现。 - 或 - null 表示使用默认比较器,即每个元素的 System.IComparable
// 实现。
//
// 返回结果:
// 如果找到 value,则为已排序的 System.Collections.ArrayList 中从零开始的 value 索引;否则为一个负数,它是大于
// value 的下一个元素索引的按位求补,如果没有更大的元素,则为 System.Collections.ArrayList.Count 的按位求补。
//
// 异常:
// System.ArgumentException:
// comparer 为 null,而且 value 和 System.Collections.ArrayList 的元素都不实现 System.IComparable
// 接口。
//
// System.InvalidOperationException:
// comparer 为 null,而且 value 与 System.Collections.ArrayList 的元素不属于同一类型。
public virtual int BinarySearch(object value, IComparer comparer);
//
// 摘要:
// 使用指定的比较器在已排序 System.Collections.ArrayList 的某个元素范围中搜索元素,并返回该元素从零开始的索引。
//
// 参数:
// index:
// 要搜索的范围从零开始的起始索引。
//
// count:
// 要搜索的范围的长度。
//
// value:
// 要定位的 System.Object。 该值可以为 null。
//
// comparer:
// 比较元素时要使用的 System.Collections.IComparer 实现。 - 或 - null 表示使用默认比较器,即每个元素的 System.IComparable
// 实现。
//
// 返回结果:
// 如果找到 value,则为已排序的 System.Collections.ArrayList 中从零开始的 value 索引;否则为一个负数,它是大于
// value 的下一个元素索引的按位求补,如果没有更大的元素,则为 System.Collections.ArrayList.Count 的按位求补。
//
// 异常:
// System.ArgumentException:
// index 和 count 不表示 System.Collections.ArrayList 中的有效范围。 - 或 - comparer 为 null,而且
// value 和 System.Collections.ArrayList 的元素都不实现 System.IComparable 接口。
//
// System.InvalidOperationException:
// comparer 为 null,而且 value 与 System.Collections.ArrayList 的元素不属于同一类型。
//
// System.ArgumentOutOfRangeException:
// index 小于零。 - 或 - count 小于零。
public virtual int BinarySearch(int index, int count, object value, IComparer comparer);
//
// 摘要:
// 从 System.Collections.ArrayList 中移除所有元素。
//
// 异常:
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。 - 或 - System.Collections.ArrayList 具有固定大小。
public virtual void Clear();
//
// 摘要:
// 创建 System.Collections.ArrayList 的浅表副本。
//
// 返回结果:
// System.Collections.ArrayList 的浅表副本。
public virtual object Clone();
//
// 摘要:
// 确定某元素是否在 System.Collections.ArrayList 中。
//
// 参数:
// item:
// 要在 System.Collections.ArrayList 中查找的 System.Object。 该值可以为 null。
//
// 返回结果:
// 如果在 System.Collections.ArrayList 中找到 item,则为 true;否则为 false。
public virtual bool Contains(object item);
//
// 摘要:
// 从目标数组的开头开始将整个 System.Collections.ArrayList 复制到兼容的一维 System.Array 中。
//
// 参数:
// array:
// 作为从 System.Collections.ArrayList 复制的元素的目标的一维 System.Array。 System.Array 必须具有从零开始的索引。
//
// 异常:
// System.ArgumentNullException:
// array 为 null。
//
// System.ArgumentException:
// array 是多维的。 - 或 - 源 System.Collections.ArrayList 中的元素数大于目标 array 可包含的元素数。
//
// System.InvalidCastException:
// 源 System.Collections.ArrayList 的类型无法自动转换为目标 array 的类型。
public virtual void CopyTo(Array array);
//
// 摘要:
// 从目标数组的指定索引处开始将整个 System.Collections.ArrayList 复制到兼容的一维 System.Array。
//
// 参数:
// array:
// 作为从 System.Collections.ArrayList 复制的元素的目标的一维 System.Array。 System.Array 必须具有从零开始的索引。
//
// arrayIndex:
// array 中从零开始的索引,从此索引处开始进行复制。
//
// 异常:
// System.ArgumentNullException:
// array 为 null。
//
// System.ArgumentOutOfRangeException:
// arrayIndex 小于零。
//
// System.ArgumentException:
// array 是多维的。 - 或 - 源 System.Collections.ArrayList 中的元素数目大于从 arrayIndex 到目标
// array 末尾之间的可用空间。
//
// System.InvalidCastException:
// 源 System.Collections.ArrayList 的类型无法自动转换为目标 array 的类型。
public virtual void CopyTo(Array array, int arrayIndex);
//
// 摘要:
// 从目标数组的指定索引处开始,将一定范围的元素从 System.Collections.ArrayList 复制到兼容的一维 System.Array
// 中。
//
// 参数:
// index:
// 源 System.Collections.ArrayList 中复制开始位置的从零开始的索引。
//
// array:
// 作为从 System.Collections.ArrayList 复制的元素的目标的一维 System.Array。 System.Array 必须具有从零开始的索引。
//
// arrayIndex:
// array 中从零开始的索引,从此索引处开始进行复制。
//
// count:
// 要复制的元素数。
//
// 异常:
// System.ArgumentNullException:
// array 为 null。
//
// System.ArgumentOutOfRangeException:
// index 小于零。 - 或 - arrayIndex 小于零。 - 或 - count 小于零。
//
// System.ArgumentException:
// array 是多维的。 - 或 - index 等于或大于源 System.Collections.ArrayList 的 System.Collections.ArrayList.Count。
// - 或 - 从 index 到源 System.Collections.ArrayList 的末尾的元素数大于从 arrayIndex 到目标 array
// 的末尾的可用空间。
//
// System.InvalidCastException:
// 源 System.Collections.ArrayList 的类型无法自动转换为目标 array 的类型。
public virtual void CopyTo(int index, Array array, int arrayIndex, int count);
//
// 摘要:
// 返回具有固定大小的 System.Collections.ArrayList 包装。
//
// 参数:
// list:
// 要包装的 System.Collections.ArrayList。
//
// 返回结果:
// 具有固定大小的 System.Collections.ArrayList 包装。
//
// 异常:
// System.ArgumentNullException:
// list 为 null。
public static ArrayList FixedSize(ArrayList list);
//
// 摘要:
// 返回具有固定大小的 System.Collections.IList 包装。
//
// 参数:
// list:
// 要包装的 System.Collections.IList。
//
// 返回结果:
// 具有固定大小的 System.Collections.IList 包装。
//
// 异常:
// System.ArgumentNullException:
// list 为 null。
public static IList FixedSize(IList list);
//
// 摘要:
// 返回整个 System.Collections.ArrayList 的一个枚举器。
//
// 返回结果:
// 用于整个 System.Collections.ArrayList 的 System.Collections.IEnumerator。
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public virtual IEnumerator GetEnumerator();
//
// 摘要:
// 返回 System.Collections.ArrayList 中某个范围内的元素的枚举器。
//
// 参数:
// index:
// 枚举器应引用的 System.Collections.ArrayList 部分从零开始的起始索引。
//
// count:
// 枚举器应引用的 System.Collections.ArrayList 部分中的元素数。
//
// 返回结果:
// System.Collections.ArrayList 中指定范围内的元素的 System.Collections.IEnumerator。
//
// 异常:
// System.ArgumentOutOfRangeException:
// index 小于零。 - 或 - count 小于零。
//
// System.ArgumentException:
// index 和 count 未指定 System.Collections.ArrayList 中的有效范围。
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public virtual IEnumerator GetEnumerator(int index, int count);
//
// 摘要:
// 返回 System.Collections.ArrayList,它表示源 System.Collections.ArrayList 中元素的子集。
//
// 参数:
// index:
// 范围开始处的从零开始的 System.Collections.ArrayList 索引。
//
// count:
// 范围中的元素数。
//
// 返回结果:
// System.Collections.ArrayList,它表示源 System.Collections.ArrayList 中元素的子集。
//
// 异常:
// System.ArgumentOutOfRangeException:
// index 小于零。 - 或 - count 小于零。
//
// System.ArgumentException:
// index 和 count 不表示 System.Collections.ArrayList 中元素的有效范围。
public virtual ArrayList GetRange(int index, int count);
//
// 摘要:
// 搜索指定的 System.Object,并返回整个 System.Collections.ArrayList 中第一个匹配项的从零开始的索引。
//
// 参数:
// value:
// 要在 System.Collections.ArrayList 中查找的 System.Object。 该值可以为 null。
//
// 返回结果:
// 如果在整个 System.Collections.ArrayList 中找到 value 的第一个匹配项,则为该项的从零开始的索引;否则为 -1。
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public virtual int IndexOf(object value);
//
// 摘要:
// 搜索指定的 System.Object,并返回 System.Collections.ArrayList 中从指定索引到最后一个元素的元素范围内第一个匹配项的从零开始的索引。
//
// 参数:
// value:
// 要在 System.Collections.ArrayList 中查找的 System.Object。 该值可以为 null。
//
// startIndex:
// 从零开始的搜索的起始索引。 空列表中 0(零)为有效值。
//
// 返回结果:
// 如果在 System.Collections.ArrayList 中从 startIndex 到最后一个元素的元素范围内找到 value 的第一个匹配项,则为该项的从零开始的索引;否则为
// -1。
//
// 异常:
// System.ArgumentOutOfRangeException:
// startIndex 不在 System.Collections.ArrayList 的有效索引范围内。
public virtual int IndexOf(object value, int startIndex);
//
// 摘要:
// 搜索指定的 System.Object,并返回 System.Collections.ArrayList 中从指定的索引开始并包含指定的元素数的元素范围内第一个匹配项的从零开始的索引。
//
// 参数:
// value:
// 要在 System.Collections.ArrayList 中查找的 System.Object。 该值可以为 null。
//
// startIndex:
// 从零开始的搜索的起始索引。 空列表中 0(零)为有效值。
//
// count:
// 要搜索的部分中的元素数。
//
// 返回结果:
// 如果在 System.Collections.ArrayList 中从 startIndex 开始并包含 count 个元素的元素范围内找到 value
// 的第一个匹配项,则为该项的从零开始的索引;否则为 -1。
//
// 异常:
// System.ArgumentOutOfRangeException:
// startIndex 不在 System.Collections.ArrayList 的有效索引范围内。 - 或 - count 小于零。 - 或
// - startIndex 和 count 未指定 System.Collections.ArrayList 中的有效部分。
public virtual int IndexOf(object value, int startIndex, int count);
//
// 摘要:
// 将元素插入 System.Collections.ArrayList 的指定索引处。
//
// 参数:
// index:
// 从零开始的索引,应在该位置插入 value。
//
// value:
// 要插入的 System.Object。 该值可以为 null。
//
// 异常:
// System.ArgumentOutOfRangeException:
// index 小于零。 - 或 - index 大于 System.Collections.ArrayList.Count。
//
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。 - 或 - System.Collections.ArrayList 具有固定大小。
public virtual void Insert(int index, object value);
//
// 摘要:
// 将集合中的某个元素插入 System.Collections.ArrayList 的指定索引处。
//
// 参数:
// index:
// 应在此处插入新元素的从零开始的索引。
//
// c:
// System.Collections.ICollection,应将其元素插入到 System.Collections.ArrayList 中。 集合本身不能为
// null,但它可以包含为 null 的元素。
//
// 异常:
// System.ArgumentNullException:
// c 为 null。
//
// System.ArgumentOutOfRangeException:
// index 小于零。 - 或 - index 大于 System.Collections.ArrayList.Count。
//
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。 - 或 - System.Collections.ArrayList 具有固定大小。
public virtual void InsertRange(int index, ICollection c);
//
// 摘要:
// 搜索指定的 System.Object,并返回整个 System.Collections.ArrayList 中最后一个匹配项的从零开始的索引。
//
// 参数:
// value:
// 要在 System.Collections.ArrayList 中查找的 System.Object。 该值可以为 null。
//
// 返回结果:
// 如果在整个 System.Collections.ArrayList 中找到 value 的最后一个匹配项,则为该项的从零开始的索引;否则为 -1。
public virtual int LastIndexOf(object value);
//
// 摘要:
// 搜索指定的 System.Object,并返回 System.Collections.ArrayList 中从第一个元素到指定索引的元素范围内最后一个匹配项的从零开始的索引。
//
// 参数:
// value:
// 要在 System.Collections.ArrayList 中查找的 System.Object。 该值可以为 null。
//
// startIndex:
// 向后搜索的从零开始的起始索引。
//
// 返回结果:
// 如果在 System.Collections.ArrayList 中从第一个元素到 startIndex 的元素范围内找到 value 的最后一个匹配项,则为该项的从零开始的索引;否则为
// -1。
//
// 异常:
// System.ArgumentOutOfRangeException:
// startIndex 不在 System.Collections.ArrayList 的有效索引范围内。
public virtual int LastIndexOf(object value, int startIndex);
//
// 摘要:
// 搜索指定的 System.Object,并返回 System.Collections.ArrayList 中包含指定的元素数并在指定索引处结束的元素范围内最后一个匹配项的从零开始的索引。
//
// 参数:
// value:
// 要在 System.Collections.ArrayList 中查找的 System.Object。 该值可以为 null。
//
// startIndex:
// 向后搜索的从零开始的起始索引。
//
// count:
// 要搜索的部分中的元素数。
//
// 返回结果:
// 如果在 System.Collections.ArrayList 中包含 count 个元素、在 startIndex 处结尾的元素范围内找到 value
// 的最后一个匹配项,则为该项的从零开始的索引;否则为 -1。
//
// 异常:
// System.ArgumentOutOfRangeException:
// startIndex 不在 System.Collections.ArrayList 的有效索引范围内。 - 或 - count 小于零。 - 或
// - startIndex 和 count 未指定 System.Collections.ArrayList 中的有效部分。
public virtual int LastIndexOf(object value, int startIndex, int count);
//
// 摘要:
// 返回只读的 System.Collections.ArrayList 包装。
//
// 参数:
// list:
// 要包装的 System.Collections.ArrayList。
//
// 返回结果:
// list 周围的只读 System.Collections.ArrayList 包装。
//
// 异常:
// System.ArgumentNullException:
// list 为 null。
public static ArrayList ReadOnly(ArrayList list);
//
// 摘要:
// 返回只读的 System.Collections.IList 包装。
//
// 参数:
// list:
// 要包装的 System.Collections.IList。
//
// 返回结果:
// list 周围的只读 System.Collections.IList 包装。
//
// 异常:
// System.ArgumentNullException:
// list 为 null。
public static IList ReadOnly(IList list);
//
// 摘要:
// 从 System.Collections.ArrayList 中移除特定对象的第一个匹配项。
//
// 参数:
// obj:
// 要从 System.Collections.ArrayList 移除的 System.Object。 该值可以为 null。
//
// 异常:
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。 - 或 - System.Collections.ArrayList 具有固定大小。
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public virtual void Remove(object obj);
//
// 摘要:
// 移除 System.Collections.ArrayList 的指定索引处的元素。
//
// 参数:
// index:
// 要移除的元素的从零开始的索引。
//
// 异常:
// System.ArgumentOutOfRangeException:
// index 小于零。 - 或 - index 等于或大于 System.Collections.ArrayList.Count。
//
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。 - 或 - System.Collections.ArrayList 具有固定大小。
public virtual void RemoveAt(int index);
//
// 摘要:
// 从 System.Collections.ArrayList 中移除一定范围的元素。
//
// 参数:
// index:
// 要移除的元素的范围从零开始的起始索引。
//
// count:
// 要移除的元素数。
//
// 异常:
// System.ArgumentOutOfRangeException:
// index 小于零。 - 或 - count 小于零。
//
// System.ArgumentException:
// index 和 count 不表示 System.Collections.ArrayList 中元素的有效范围。
//
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。 - 或 - System.Collections.ArrayList 具有固定大小。
public virtual void RemoveRange(int index, int count);
//
// 摘要:
// 返回 System.Collections.ArrayList,它的元素是指定值的副本。
//
// 参数:
// value:
// 要在新 System.Collections.ArrayList 中对其进行多次复制的 System.Object。 该值可以为 null。
//
// count:
// value 应被复制的次数。
//
// 返回结果:
// 具有 count 所指定的元素数的 System.Collections.ArrayList,其中的所有元素都是 value 的副本。
//
// 异常:
// System.ArgumentOutOfRangeException:
// count 小于零。
public static ArrayList Repeat(object value, int count);
//
// 摘要:
// 将整个 System.Collections.ArrayList 中元素的顺序反转。
//
// 异常:
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。
public virtual void Reverse();
//
// 摘要:
// 将指定范围中元素的顺序反转。
//
// 参数:
// index:
// 要反转的范围的从零开始的起始索引。
//
// count:
// 要反转的范围内的元素数。
//
// 异常:
// System.ArgumentOutOfRangeException:
// index 小于零。 - 或 - count 小于零。
//
// System.ArgumentException:
// index 和 count 不表示 System.Collections.ArrayList 中元素的有效范围。
//
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。
public virtual void Reverse(int index, int count);
//
// 摘要:
// 将集合中的元素复制到 System.Collections.ArrayList 中一定范围的元素上。
//
// 参数:
// index:
// 从零开始的 System.Collections.ArrayList 索引,从该位置开始复制 c 的元素。
//
// c:
// System.Collections.ICollection,要将其元素复制到 System.Collections.ArrayList 中。 集合本身不能为
// null,但它可以包含为 null 的元素。
//
// 异常:
// System.ArgumentOutOfRangeException:
// index 小于零。 - 或 - index 加上 c 中的元素数大于 System.Collections.ArrayList.Count。
//
// System.ArgumentNullException:
// c 为 null。
//
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。
public virtual void SetRange(int index, ICollection c);
//
// 摘要:
// 对整个 System.Collections.ArrayList 中的元素进行排序。
//
// 异常:
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。
public virtual void Sort();
//
// 摘要:
// 使用指定的比较器对整个 System.Collections.ArrayList 中的元素进行排序。
//
// 参数:
// comparer:
// 比较元素时要使用的 System.Collections.IComparer 实现。 - 或 - null 引用(Visual Basic 中为
// Nothing)将使用每个元数的 System.IComparable 实现。
//
// 异常:
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。
//
// System.InvalidOperationException:
// 比较两个元素时出错。
public virtual void Sort(IComparer comparer);
//
// 摘要:
// 使用指定的比较器对 System.Collections.ArrayList 中某个范围内的元素进行排序。
//
// 参数:
// index:
// 要排序的范围的从零开始的起始索引。
//
// count:
// 要排序的范围的长度。
//
// comparer:
// 比较元素时要使用的 System.Collections.IComparer 实现。 - 或 - null 引用(Visual Basic 中为
// Nothing)将使用每个元数的 System.IComparable 实现。
//
// 异常:
// System.ArgumentOutOfRangeException:
// index 小于零。 - 或 - count 小于零。
//
// System.ArgumentException:
// index 和 count 未指定 System.Collections.ArrayList 中的有效范围。
//
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。
//
// System.InvalidOperationException:
// 比较两个元素时出错。
public virtual void Sort(int index, int count, IComparer comparer);
//
// 摘要:
// 返回同步的(线程安全)System.Collections.ArrayList 包装。
//
// 参数:
// list:
// 要同步的 System.Collections.ArrayList。
//
// 返回结果:
// 同步的(线程安全)System.Collections.ArrayList 包装。
//
// 异常:
// System.ArgumentNullException:
// list 为 null。
public static ArrayList Synchronized(ArrayList list);
//
// 摘要:
// 返回同步的(线程安全)System.Collections.IList 包装。
//
// 参数:
// list:
// 要同步的 System.Collections.IList。
//
// 返回结果:
// 同步的(线程安全)System.Collections.IList 包装。
//
// 异常:
// System.ArgumentNullException:
// list 为 null。
public static IList Synchronized(IList list);
//
// 摘要:
// 将 System.Collections.ArrayList 的元素复制到新 System.Object 数组中。
//
// 返回结果:
// System.Object 数组,它包含 System.Collections.ArrayList 中元素的副本。
public virtual object[] ToArray();
//
// 摘要:
// 将 System.Collections.ArrayList 的元素复制到指定元素类型的新数组中。
//
// 参数:
// type:
// 要创建并向其复制元素的目标数组的元素 System.Type。
//
// 返回结果:
// 指定元素类型的数组,它包含 System.Collections.ArrayList 中元素的副本。
//
// 异常:
// System.ArgumentNullException:
// type 为 null。
//
// System.InvalidCastException:
// 源 System.Collections.ArrayList 的类型不能自动转换为指定类型。
[SecuritySafeCritical]
public virtual Array ToArray(Type type);
//
// 摘要:
// 将容量设置为 System.Collections.ArrayList 中元素的实际数目。
//
// 异常:
// System.NotSupportedException:
// System.Collections.ArrayList 为只读。 - 或 - System.Collections.ArrayList 具有固定大小。
public virtual void TrimToSize();
}
}
实现了IEnumerable接口的GetEnumerator 即可使用 Foreach遍历,返回一个IEnumerator对象的更多相关文章
- C# 索引器,实现IEnumerable接口的GetEnumerator()方法
当自定义类需要实现索引时,可以在类中实现索引器. 用Table作为例子,Table由多个Row组成,Row由多个Cell组成, 我们需要实现自定义的table[0],row[0] 索引器定义格式为 [ ...
- 第3章 springboot接口返回json 3-1 SpringBoot构造并返回一个json对象
数据的使用主要还是以JSON为主,我们不会去使用XML. 这个时候我们先不使用@RestController,我们使用之前SpringMVC的那种方式,就是@Controller. @Respons ...
- foreach为什么要实现IEnumerable接口而不是直接用IEnumerator接口
在.Net中,要想被foreach遍历,那么目标对象要实现IEnumerable或IEnumerable<T>接口,这个接口有一个方法,GetEnumerator(),返回一个IEnume ...
- C# 通过IEnumberable接口和IEnumerator接口实现自定义集合类型foreach功能
1.IEnumerator和IEnumerable的作用 其实IEnumerator和IEnumerable的作用很简单,就是让除数组和集合之外的类型也能支持foreach循环,至于foreach循环 ...
- 接口、索引器、Foreach的本质(学习笔记)
接口 什么是接口? 接口代表一种能力,和抽象类类似但比抽象类的抽象程度更高! 接口的定义: public interface IEat//定义一个接口 { void Eat(string food); ...
- IEnumerable<T> 接口和GetEnumerator 详解
IEnumerable<T> 接口 .NET Framework 4.6 and 4.5 公开枚举数,该枚举数支持在指定类型的集合上进行简单迭代. 若要浏览此类型的.NET Frame ...
- 你可能不知道的陷阱, IEnumerable接口
1. IEnumerable 与 IEnumerator IEnumerable枚举器接口的重要性,说一万句话都不过分.几乎所有集合都实现了这个接口,Linq的核心也依赖于这个万能的接口.C语言的 ...
- IEnumerable接口
IEnumerable接口顾名思义就是 可枚举的,可列举的. 接口也很简单,返回一个 枚举器对象 IEnumerator . [ComVisible(true), Guid("496B0AB ...
- IEnumerable接口的实现
对象要实现可以迭代需IEnumerable接口并实现GetEnumerator方法.一下简单例子 public class SPEnumerable<T> : IEnumerable { ...
随机推荐
- 浅谈Excel开发:三 Excel 对象模型
前一篇文章介绍了Excel中的菜单系统,在创建完菜单和工具栏之后,就要着手进行功能的开发了.不论您采用何种方式来开发Excel应用程序,了解Excel对象模型尤其重要,这些对象是您与Excel进行交互 ...
- Git 远程仓库搭建
大名鼎鼎的git就不多做介绍了,总之.我们使用git来作为项目的一个版本控制工具,多人开发的项目的时候会轻松很多. 安装git whthomas@whthomas:~/workplace/gitOne ...
- 趣味C程序-HelloWord
说明:刚才写了一个基础的helloWord程序(很早以前从其他地方收集的.),本以为群里面的人是可以答对了,但是我错了,没有人.他们的错误往往被程序的外表给蒙蔽了. 很多人的回答是0.如果你仔细看的话 ...
- Git Day01,仓库,commit,版本切换
1st,创建版本库: 2nd,添加文件: 3rd,修改文件,并提交: 4th,版本切换:git log查看版本:版本回退: 又回到原始版本了: 回到“未来”: 今天就到这里,明天继续.Git确实挺 ...
- Atitit java 二维码识别 图片识别
Atitit java 二维码识别 图片识别 1.1. 解码11.2. 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.11.3. 二维码的样例:21.4. 定位图案21.5. 数 ...
- 对于System.Net.Http的学习(二)——使用 HttpClient 进行连接
对于System.Net.Http的学习(一)——System.Net.Http 简介 使用 HttpClient 进行连接 使用 System.Net.Http 命名空间中的 HttpClient ...
- 快速入门系列--CLR--03泛型集合
.NET中的泛型集合 在这里主要介绍常见的泛型集合,很多时候其并发时的线程安全性常常令我们担忧.因而简述下.NET并发时线程安全特性,其详情请见MSDN. 普通集合都不支持多重并发写操作 部分支持单线 ...
- ssh(sturts2_spring_hibernate) 框架搭建之struts2
一.struts2完整流程的逻辑(整体的概述) 首先,用户在地址栏中输入你的项目访问路径,然后这个请求会发送到服务器,之后服务器发现在web.xml中配置了一个filter过滤器,并且这个过滤器需要对 ...
- 说说null和undefined的那些事
网上有很多关于null和undefined的解释,那么今天我们也来简单的聊聊null与undefined的话题,以便解开它们的神秘面纱,当然这这是简单的介绍,在日后会有相应的更新. 为什么用==的时候 ...
- Cocos2d-x 3.2 学习笔记(五)Sprite Node
游戏中最重要的元素Sprite精灵,关于精灵的创建,精灵的控制等等. 涉及到的类Class: AnimationFrame 动画帧. Animation 动画对象:一个用来在精灵对象上表现动画的动画对 ...