System.Collections.Specialized.NameObjectCollectionBase.BaseRemoveAt 方法
上一篇:System.Configuration.ConfigurationSectionCollection.BaseRemove 方法
下一篇:System.Configuration.ConfigurationSectionCollection.BaseSet(Int32,Object) 方法
方法描述
移除 NameObjectCollectionBase 实例的指定索引处的项。
语法定义(C# System.Collections.Specialized.NameObjectCollectionBase.BaseRemoveAt 方法 的用法)
protected void BaseRemoveAt( int index )
参数/返回值
参数值/返回值 | 参数类型/返回类型 | 参数描述/返回描述 |
---|---|---|
index | System-Int32 | 要移除的项的从零开始的索引。 |
返回值 | void |
提示和注释
在连续元素的集合(如列表)中,已移除元素之后的元素上移以占据空出的位置。 如果该集合已编制索引,则还更新已移动的元素的索引。 此行为不适用于元素按概念分组到存储桶中的集合(如哈希表)。
此方法的运算复杂度为 O(n),其中 n 是 Count。
System.Collections.Specialized.NameObjectCollectionBase.BaseRemoveAt 方法例子
下面的代码示例使用 BaseRemove 和 BaseRemoveAt 从 NameObjectCollectionBase 中移除元素。
using System; using System.Collections; using System.Collections.Specialized; public class MyCollection : NameObjectCollectionBase { private DictionaryEntry _de = new DictionaryEntry(); // Gets a key-and-value pair (DictionaryEntry) using an index. public DictionaryEntry this[ int index ] { get { _de.Key = this.BaseGetKey( index ); _de.Value = this.BaseGet( index ); return( _de ); } } // Adds elements from an IDictionary into the new collection. public MyCollection( IDictionary d ) { foreach ( DictionaryEntry de in d ) { this.BaseAdd( (String) de.Key, de.Value ); } } // Removes an entry with the specified key from the collection. public void Remove( String key ) { this.BaseRemove( key ); } // Removes an entry in the specified index from the collection. public void Remove( int index ) { this.BaseRemoveAt( index ); } } public class SamplesNameObjectCollectionBase { public static void Main() { // Creates and initializes a new MyCollection instance. IDictionary d = new ListDictionary(); d.Add( "red", "apple" ); d.Add( "yellow", "banana" ); d.Add( "green", "pear" ); MyCollection myCol = new MyCollection( d ); Console.WriteLine( "Initial state of the collection (Count = {0}):", myCol.Count ); PrintKeysAndValues( myCol ); // Removes an element at a specific index. myCol.Remove( 1 ); Console.WriteLine( "After removing the element at index 1 (Count = {0}):", myCol.Count ); PrintKeysAndValues( myCol ); // Removes an element with a specific key. myCol.Remove( "red" ); Console.WriteLine( "After removing the element with the key \"red\" (Count = {0}):", myCol.Count ); PrintKeysAndValues( myCol ); } public static void PrintKeysAndValues( MyCollection myCol ) { for ( int i = 0; i < myCol.Count; i++ ) { Console.WriteLine( "[{0}] : {1}, {2}", i, myCol[i].Key, myCol[i].Value ); } } } /* This code produces the following output. Initial state of the collection (Count = 3): [0] : red, apple [1] : yellow, banana [2] : green, pear After removing the element at index 1 (Count = 2): [0] : red, apple [1] : green, pear After removing the element with the key "red" (Count = 1): [0] : green, pear */
异常
异常 | 异常描述 |
---|---|
ArgumentOutOfRangeException | index 在集合的有效索引范围外。 |
NotSupportedException | 集合为只读。 |
版本信息
.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1
适用平台
Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。
上一篇:System.Configuration.ConfigurationSectionCollection.BaseRemove 方法
下一篇:System.Configuration.ConfigurationSectionCollection.BaseSet(Int32,Object) 方法