Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Speech / Src / Internal / ReadOnlyDictionary.cs / 1 / ReadOnlyDictionary.cs
//------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; namespace System.Speech.Internal { internal class ReadOnlyDictionary: IDictionary { public int Count { get { return _dictionary.Count; } } public IEnumerator > GetEnumerator () { return _dictionary.GetEnumerator (); } public V this [K key] { get { return _dictionary [key]; } set { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } } // Other methods are a pass through to the underlying collection: public bool IsReadOnly { get { return true; } } public bool Contains (KeyValuePair key) { return _dictionary.ContainsKey (key.Key); } public bool ContainsKey (K key) { return _dictionary.ContainsKey (key); } public void CopyTo (KeyValuePair [] array, int index) { ((ICollection >) _dictionary).CopyTo (array, index); } public ICollection Keys { // According to the source of IDictionary.Keys this is a read-only collection. get { return _dictionary.Keys; } } public ICollection Values { // According to the source of IDictionary.Keys this is a read-write collection, // but is a copy of the main dictionary so there's no way to change anything in the main collection. get { return _dictionary.Values; } } // Read-only collection so throw on these methods: public void Add (KeyValuePair key) { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } public void Add (K key, V value) { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } public void Clear () { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } public bool Remove (KeyValuePair key) { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } public bool Remove (K key) { throw new NotSupportedException (SR.Get (SRID.CollectionReadOnly)); } IEnumerator IEnumerable.GetEnumerator () { return ((IEnumerable >) this).GetEnumerator (); } bool IDictionary .TryGetValue (K key, out V value) { return InternalDictionary.TryGetValue (key, out value); } // Allow internal code to manipulate internal collection internal Dictionary InternalDictionary { get { return _dictionary; } //set { _dictionary = value; } } private Dictionary _dictionary = new Dictionary (); } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SymbolPair.cs
- ZipIOFileItemStream.cs
- DataException.cs
- AnnotationAdorner.cs
- SystemTcpConnection.cs
- MaterialGroup.cs
- TypeConverter.cs
- GZipStream.cs
- WSSecureConversationFeb2005.cs
- Version.cs
- SerTrace.cs
- DesignBindingConverter.cs
- ActivityWithResultConverter.cs
- SQLDecimalStorage.cs
- RefreshInfo.cs
- KnownIds.cs
- CodeNamespaceImport.cs
- SchemaImporterExtension.cs
- InfoCardKeyedHashAlgorithm.cs
- CharacterMetricsDictionary.cs
- ModelFunction.cs
- SymLanguageVendor.cs
- UnknownWrapper.cs
- XmlnsCompatibleWithAttribute.cs
- ZoneIdentityPermission.cs
- EncoderReplacementFallback.cs
- VisualStyleInformation.cs
- SystemKeyConverter.cs
- MouseButton.cs
- WindowsAltTab.cs
- PrePrepareMethodAttribute.cs
- Thread.cs
- XmlNullResolver.cs
- WebPartVerb.cs
- DomainConstraint.cs
- NamespaceDecl.cs
- XmlnsCache.cs
- TreeNodeStyleCollection.cs
- recordstatescratchpad.cs
- ConstructorNeedsTagAttribute.cs
- SqlWebEventProvider.cs
- ipaddressinformationcollection.cs
- BinaryObjectInfo.cs
- InputQueue.cs
- TextureBrush.cs
- MiniParameterInfo.cs
- FastPropertyAccessor.cs
- DbConnectionPoolGroup.cs
- COSERVERINFO.cs
- AspCompat.cs
- MatrixValueSerializer.cs
- Hashtable.cs
- _SSPIWrapper.cs
- GroupStyle.cs
- HtmlInputRadioButton.cs
- CodeDomSerializationProvider.cs
- AnimatedTypeHelpers.cs
- TextEditorCharacters.cs
- SubtreeProcessor.cs
- TableRow.cs
- WebPartMenu.cs
- GPRECT.cs
- ACL.cs
- ColumnMapProcessor.cs
- BaseProcessor.cs
- EndOfStreamException.cs
- Serializer.cs
- TablePattern.cs
- ConstantExpression.cs
- ListItemsCollectionEditor.cs
- TextTrailingWordEllipsis.cs
- ActiveXSite.cs
- _WinHttpWebProxyDataBuilder.cs
- CompilerErrorCollection.cs
- KeyValuePairs.cs
- RuntimeHandles.cs
- SubMenuStyleCollection.cs
- LineServices.cs
- ProbeMatchesMessage11.cs
- AudioFileOut.cs
- JulianCalendar.cs
- WindowsProgressbar.cs
- ToolboxComponentsCreatedEventArgs.cs
- TabletDeviceInfo.cs
- SQLSingle.cs
- SqlSelectStatement.cs
- XmlWrappingReader.cs
- DBNull.cs
- MachineSettingsSection.cs
- RewritingProcessor.cs
- OracleSqlParser.cs
- ConfigurationSectionCollection.cs
- FirstMatchCodeGroup.cs
- ScrollProviderWrapper.cs
- SafeProcessHandle.cs
- PropertyDescriptor.cs
- IndentedWriter.cs
- WebPartConnectionsEventArgs.cs
- LassoSelectionBehavior.cs
- DataStorage.cs