Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / KeyedByTypeCollection.cs / 1 / KeyedByTypeCollection.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Collections.Generic { using System.Xml; using System.ServiceModel; using System.Collections.ObjectModel; using System.Runtime.Serialization; public class KeyedByTypeCollection: KeyedCollection { public KeyedByTypeCollection() : base(null, 4) { } public KeyedByTypeCollection(IEnumerable items) : base(null, 4) { if (items == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("items"); foreach (TItem item in items) { base.Add(item); } } public T Find () { return this.Find (false); } public T Remove () { return this.Find (true); } T Find (bool remove) { for (int i = 0; i < this.Count; i++) { TItem settings = this[i]; if (settings is T) { if (remove) { Remove(settings); } return (T)(object)settings; } } return default(T); } public Collection FindAll () { return this.FindAll (false); } public Collection RemoveAll () { return this.FindAll (true); } Collection FindAll (bool remove) { Collection result = new Collection (); foreach (TItem settings in this) { if (settings is T) { result.Add((T)(object)settings); } } if (remove) { foreach (T settings in result) { this.Remove((TItem)(object)settings); } } return result; } protected override Type GetKeyForItem(TItem item) { if (item == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("item"); } return item.GetType(); } protected override void InsertItem(int index, TItem item) { if (item == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("item"); } if (this.Contains(item.GetType())) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("item", SR.GetString(SR.DuplicateBehavior1, item.GetType().FullName)); } base.InsertItem(index, item); } protected override void SetItem(int index, TItem item) { if (item == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("item"); } base.SetItem(index, item); } } } // 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
- ScriptResourceHandler.cs
- DrawingContextWalker.cs
- ToolStripContainer.cs
- SecurityUtils.cs
- Transform3DGroup.cs
- HttpWrapper.cs
- UserControl.cs
- ViewgenGatekeeper.cs
- TextStore.cs
- Camera.cs
- NumberFunctions.cs
- VolatileEnlistmentState.cs
- TimeSpanValidator.cs
- TextRangeProviderWrapper.cs
- Compress.cs
- AttributeCollection.cs
- ScrollBarRenderer.cs
- SqlParameter.cs
- HostElement.cs
- SiteMembershipCondition.cs
- PrePrepareMethodAttribute.cs
- OleDbStruct.cs
- AsyncOperationManager.cs
- ExpressionBinding.cs
- RectValueSerializer.cs
- InteropAutomationProvider.cs
- Accessible.cs
- SymbolType.cs
- Configuration.cs
- Utility.cs
- FreeFormDragDropManager.cs
- Stack.cs
- OrderedHashRepartitionEnumerator.cs
- TimeSpanOrInfiniteConverter.cs
- MemoryRecordBuffer.cs
- ResourceType.cs
- WinEventWrap.cs
- NominalTypeEliminator.cs
- DomNameTable.cs
- XmlBoundElement.cs
- ContextMarshalException.cs
- DataGridViewColumnEventArgs.cs
- DataSourceCacheDurationConverter.cs
- BrowserCapabilitiesCodeGenerator.cs
- GifBitmapDecoder.cs
- PolyLineSegmentFigureLogic.cs
- ContainerParaClient.cs
- ProcessHostFactoryHelper.cs
- ReadOnlyCollectionBase.cs
- PermissionAttributes.cs
- EncoderParameter.cs
- VisualProxy.cs
- ElapsedEventArgs.cs
- BindingExpressionBase.cs
- RegexMatch.cs
- ContextStaticAttribute.cs
- ListViewGroupItemCollection.cs
- ListCommandEventArgs.cs
- OdbcConnectionPoolProviderInfo.cs
- ProcessProtocolHandler.cs
- FontWeightConverter.cs
- ResourceDictionaryCollection.cs
- Image.cs
- RootDesignerSerializerAttribute.cs
- HandledMouseEvent.cs
- EdmConstants.cs
- X509WindowsSecurityToken.cs
- ContextStaticAttribute.cs
- AutoResetEvent.cs
- CredentialCache.cs
- ThemeableAttribute.cs
- FieldNameLookup.cs
- StringUtil.cs
- DockingAttribute.cs
- EntityDataSourceWrapperCollection.cs
- VirtualPathProvider.cs
- CultureInfoConverter.cs
- ObjectDataSourceSelectingEventArgs.cs
- StorageAssociationSetMapping.cs
- DataExchangeServiceBinder.cs
- InkSerializer.cs
- ChildTable.cs
- Connector.xaml.cs
- XmlSerializationReader.cs
- Type.cs
- TreeNodeBindingCollection.cs
- AttributeAction.cs
- dataSvcMapFileLoader.cs
- SettingsAttributeDictionary.cs
- PackWebRequest.cs
- EntitySqlQueryCacheEntry.cs
- Parameter.cs
- EntityDataSourceWrapperCollection.cs
- FastEncoder.cs
- Guid.cs
- PageContent.cs
- NativeMethods.cs
- FormatVersion.cs
- ZipIOModeEnforcingStream.cs
- Utils.cs