Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Sys / System / Configuration / SettingsPropertyValueCollection.cs / 1305376 / SettingsPropertyValueCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Configuration {
using System.Collections;
using System.Collections.Specialized;
using System.Runtime.Serialization;
using System.Configuration.Provider;
using System.Globalization;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Xml.Serialization;
using System.ComponentModel;
using System.Security.Permissions;
using System.Reflection;
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
public class SettingsPropertyValueCollection : IEnumerable, ICloneable, ICollection
{
private Hashtable _Indices = null;
private ArrayList _Values = null;
private bool _ReadOnly = false;
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public SettingsPropertyValueCollection()
{
_Indices = new Hashtable(10, StringComparer.CurrentCultureIgnoreCase);
_Values = new ArrayList();
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public void Add(SettingsPropertyValue property)
{
if (_ReadOnly)
throw new NotSupportedException();
int pos = _Values.Add(property);
try
{
_Indices.Add(property.Name, pos);
}
catch (Exception)
{
_Values.RemoveAt(pos);
throw;
}
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public void Remove(string name)
{
if (_ReadOnly)
throw new NotSupportedException();
object pos = _Indices[name];
if (pos == null || !(pos is int))
return;
int ipos = (int)pos;
if (ipos >= _Values.Count)
return;
_Values.RemoveAt(ipos);
_Indices.Remove(name);
ArrayList al = new ArrayList();
foreach (DictionaryEntry de in _Indices)
if ((int)de.Value > ipos)
al.Add(de.Key);
foreach (string key in al)
_Indices[key] = ((int)_Indices[key]) - 1;
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public SettingsPropertyValue this[string name]
{
get
{
object pos = _Indices[name];
if (pos == null || !(pos is int))
return null;
int ipos = (int)pos;
if (ipos >= _Values.Count)
return null;
return (SettingsPropertyValue)_Values[ipos];
}
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public IEnumerator GetEnumerator()
{
return _Values.GetEnumerator();
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public object Clone()
{
return new SettingsPropertyValueCollection(_Indices, _Values);
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public void SetReadOnly()
{
if (_ReadOnly)
return;
_ReadOnly = true;
_Values = ArrayList.ReadOnly(_Values);
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public void Clear()
{
_Values.Clear();
_Indices.Clear();
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
// ICollection interface
public int Count { get { return _Values.Count; } }
public bool IsSynchronized { get { return false; } }
public object SyncRoot { get { return this; } }
public void CopyTo(Array array, int index)
{
_Values.CopyTo(array, index);
}
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
private SettingsPropertyValueCollection(Hashtable indices, ArrayList values)
{
_Indices = (Hashtable)indices.Clone();
_Values = (ArrayList)values.Clone();
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Configuration {
using System.Collections;
using System.Collections.Specialized;
using System.Runtime.Serialization;
using System.Configuration.Provider;
using System.Globalization;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Xml.Serialization;
using System.ComponentModel;
using System.Security.Permissions;
using System.Reflection;
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
public class SettingsPropertyValueCollection : IEnumerable, ICloneable, ICollection
{
private Hashtable _Indices = null;
private ArrayList _Values = null;
private bool _ReadOnly = false;
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public SettingsPropertyValueCollection()
{
_Indices = new Hashtable(10, StringComparer.CurrentCultureIgnoreCase);
_Values = new ArrayList();
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public void Add(SettingsPropertyValue property)
{
if (_ReadOnly)
throw new NotSupportedException();
int pos = _Values.Add(property);
try
{
_Indices.Add(property.Name, pos);
}
catch (Exception)
{
_Values.RemoveAt(pos);
throw;
}
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public void Remove(string name)
{
if (_ReadOnly)
throw new NotSupportedException();
object pos = _Indices[name];
if (pos == null || !(pos is int))
return;
int ipos = (int)pos;
if (ipos >= _Values.Count)
return;
_Values.RemoveAt(ipos);
_Indices.Remove(name);
ArrayList al = new ArrayList();
foreach (DictionaryEntry de in _Indices)
if ((int)de.Value > ipos)
al.Add(de.Key);
foreach (string key in al)
_Indices[key] = ((int)_Indices[key]) - 1;
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public SettingsPropertyValue this[string name]
{
get
{
object pos = _Indices[name];
if (pos == null || !(pos is int))
return null;
int ipos = (int)pos;
if (ipos >= _Values.Count)
return null;
return (SettingsPropertyValue)_Values[ipos];
}
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public IEnumerator GetEnumerator()
{
return _Values.GetEnumerator();
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public object Clone()
{
return new SettingsPropertyValueCollection(_Indices, _Values);
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public void SetReadOnly()
{
if (_ReadOnly)
return;
_ReadOnly = true;
_Values = ArrayList.ReadOnly(_Values);
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
public void Clear()
{
_Values.Clear();
_Indices.Clear();
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
// ICollection interface
public int Count { get { return _Values.Count; } }
public bool IsSynchronized { get { return false; } }
public object SyncRoot { get { return this; } }
public void CopyTo(Array array, int index)
{
_Values.CopyTo(array, index);
}
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
private SettingsPropertyValueCollection(Hashtable indices, ArrayList values)
{
_Indices = (Hashtable)indices.Clone();
_Values = (ArrayList)values.Clone();
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- X509Utils.cs
- ImageDesigner.cs
- xmlsaver.cs
- ToolStripItemDesigner.cs
- XPathEmptyIterator.cs
- BitmapDownload.cs
- SspiSafeHandles.cs
- Attributes.cs
- Convert.cs
- PrePostDescendentsWalker.cs
- QueryableDataSourceView.cs
- Deflater.cs
- TranslateTransform3D.cs
- CommonGetThemePartSize.cs
- FormatConvertedBitmap.cs
- LocalClientSecuritySettingsElement.cs
- GradientSpreadMethodValidation.cs
- ContainerAction.cs
- ComponentSerializationService.cs
- MetaModel.cs
- Expander.cs
- wgx_commands.cs
- ErrorEventArgs.cs
- StringSource.cs
- CodeTypeParameterCollection.cs
- CacheMode.cs
- ResourceReferenceExpressionConverter.cs
- ModuleConfigurationInfo.cs
- Token.cs
- LicenseContext.cs
- DragDeltaEventArgs.cs
- PeerName.cs
- RegistryKey.cs
- WebPartTransformer.cs
- DropSource.cs
- MenuItemCollectionEditorDialog.cs
- TransactionManager.cs
- ListViewCancelEventArgs.cs
- NetMsmqBindingElement.cs
- SignedXml.cs
- FacetDescriptionElement.cs
- Queue.cs
- FixUpCollection.cs
- ShaderEffect.cs
- DependencyProperty.cs
- Light.cs
- Hash.cs
- EncryptedType.cs
- CompressionTracing.cs
- XpsInterleavingPolicy.cs
- Vector3DValueSerializer.cs
- LogConverter.cs
- XmlSerializerFactory.cs
- OperationContext.cs
- SqlWriter.cs
- DataGridViewSelectedCellCollection.cs
- XmlText.cs
- PresentationSource.cs
- IndicCharClassifier.cs
- HelpEvent.cs
- StylusCollection.cs
- OdbcErrorCollection.cs
- EventMetadata.cs
- DataMemberListEditor.cs
- ObjectDataSourceMethodEventArgs.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- DescendantOverDescendantQuery.cs
- SchemaType.cs
- Nullable.cs
- PublisherMembershipCondition.cs
- ping.cs
- SortKey.cs
- _ConnectOverlappedAsyncResult.cs
- MulticastNotSupportedException.cs
- CodeDomComponentSerializationService.cs
- XmlILStorageConverter.cs
- Convert.cs
- EmptyStringExpandableObjectConverter.cs
- AssemblyAttributes.cs
- StylesEditorDialog.cs
- PersistenceException.cs
- TouchPoint.cs
- CorrelationQueryBehavior.cs
- UTF7Encoding.cs
- MobileControlDesigner.cs
- InheritanceContextChangedEventManager.cs
- CounterSetInstance.cs
- InternalCompensate.cs
- ComponentGuaranteesAttribute.cs
- WebHttpSecurity.cs
- EntityDataSourceContainerNameConverter.cs
- MD5CryptoServiceProvider.cs
- GridViewColumnCollection.cs
- DBSqlParserTableCollection.cs
- URLEditor.cs
- PerformanceCounterPermissionAttribute.cs
- OpacityConverter.cs
- ProgressBarRenderer.cs
- DataGridToolTip.cs
- ToolStripSeparatorRenderEventArgs.cs