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
- ParallelLoopState.cs
- TypeSchema.cs
- ExpandedWrapper.cs
- FixedSOMImage.cs
- RemotingConfigParser.cs
- AssemblyCache.cs
- XmlStrings.cs
- KeyPressEvent.cs
- ParameterEditorUserControl.cs
- RangeBase.cs
- CookielessData.cs
- ContentElement.cs
- DesignerOptionService.cs
- ConfigurationConverterBase.cs
- TraversalRequest.cs
- ArraySet.cs
- ToolboxComponentsCreatingEventArgs.cs
- ErrorFormatter.cs
- RenderData.cs
- TemplateBindingExtension.cs
- TableLayoutPanel.cs
- WebHttpDispatchOperationSelector.cs
- SHA384Managed.cs
- ClientSettings.cs
- DataFormats.cs
- QilTypeChecker.cs
- HwndMouseInputProvider.cs
- XmlRootAttribute.cs
- LoginCancelEventArgs.cs
- NamespaceTable.cs
- BindableTemplateBuilder.cs
- WeakEventTable.cs
- StringBuilder.cs
- MinimizableAttributeTypeConverter.cs
- ImageField.cs
- MultiView.cs
- XmlDownloadManager.cs
- DataGridCaption.cs
- AssemblyName.cs
- DataGridViewRowStateChangedEventArgs.cs
- ItemAutomationPeer.cs
- UIElementParaClient.cs
- XmlSchemaDocumentation.cs
- FrameworkReadOnlyPropertyMetadata.cs
- Calendar.cs
- SoapParser.cs
- BoundField.cs
- CommonDialog.cs
- EventLogPermissionHolder.cs
- UpdateTracker.cs
- GroupItem.cs
- PolicyStatement.cs
- WorkflowQueue.cs
- TextCharacters.cs
- CallContext.cs
- XMLSyntaxException.cs
- CheckableControlBaseAdapter.cs
- RichTextBoxConstants.cs
- Condition.cs
- OdbcRowUpdatingEvent.cs
- StrokeNodeOperations.cs
- SpecialTypeDataContract.cs
- MembershipPasswordException.cs
- TerminatorSinks.cs
- GlyphRunDrawing.cs
- TrackingProfileManager.cs
- LayoutEvent.cs
- View.cs
- EnumerableWrapperWeakToStrong.cs
- FontWeights.cs
- GACMembershipCondition.cs
- ErrorHandler.cs
- HttpResponseInternalWrapper.cs
- Point3DKeyFrameCollection.cs
- PropertyDescriptor.cs
- QueueProcessor.cs
- CodeSubDirectory.cs
- StackOverflowException.cs
- HtmlHistory.cs
- XPathExpr.cs
- ProfilePropertyNameValidator.cs
- ProfileInfo.cs
- XmlChildEnumerator.cs
- Tracking.cs
- RequestResponse.cs
- ImageFormatConverter.cs
- DoubleCollectionConverter.cs
- RubberbandSelector.cs
- SplineKeyFrames.cs
- ErrorWebPart.cs
- SchemaConstraints.cs
- IPAddressCollection.cs
- RuleSetCollection.cs
- _Events.cs
- SqlMetaData.cs
- DynamicField.cs
- XmlCharCheckingWriter.cs
- StylesEditorDialog.cs
- VariableQuery.cs
- ContextMenuAutomationPeer.cs