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
- HiddenField.cs
- ObjectStateManagerMetadata.cs
- XpsFontSerializationService.cs
- ControlBindingsCollection.cs
- AssemblyBuilderData.cs
- COM2IProvidePropertyBuilderHandler.cs
- SmtpMail.cs
- securitycriticaldataClass.cs
- ToolboxControl.cs
- LifetimeServices.cs
- MouseWheelEventArgs.cs
- XmlAggregates.cs
- Part.cs
- ProcessStartInfo.cs
- XmlSchemaInclude.cs
- ConsumerConnectionPoint.cs
- AlignmentYValidation.cs
- XamlTypeMapper.cs
- TableLayoutPanelCellPosition.cs
- EFAssociationProvider.cs
- IPGlobalProperties.cs
- WindowsToolbarAsMenu.cs
- LocalBuilder.cs
- VersionedStream.cs
- UnsafeNativeMethods.cs
- HashHelper.cs
- ZipIOModeEnforcingStream.cs
- ColumnBinding.cs
- GeneralEndpointIdentity.cs
- HotSpot.cs
- RijndaelManagedTransform.cs
- ObjectDataSourceDesigner.cs
- BulletDecorator.cs
- ExceptionUtil.cs
- HostProtectionException.cs
- UntrustedRecipientException.cs
- HierarchicalDataTemplate.cs
- Options.cs
- ClassHandlersStore.cs
- Positioning.cs
- PrintPreviewGraphics.cs
- XsdBuildProvider.cs
- DataGridColumnCollection.cs
- GenerateScriptTypeAttribute.cs
- SecurityPolicySection.cs
- ImageIndexEditor.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- RenderData.cs
- CodeTypeDeclaration.cs
- DataGridSortCommandEventArgs.cs
- SqlUserDefinedTypeAttribute.cs
- AlternationConverter.cs
- SignatureGenerator.cs
- UIElement.cs
- Model3DGroup.cs
- BulletedList.cs
- DecoderReplacementFallback.cs
- EncoderBestFitFallback.cs
- CounterSampleCalculator.cs
- DocumentApplicationState.cs
- TreeViewEvent.cs
- SerializationObjectManager.cs
- RectAnimationUsingKeyFrames.cs
- StringExpressionSet.cs
- WebPartCancelEventArgs.cs
- MailDefinition.cs
- WhitespaceSignificantCollectionAttribute.cs
- DataTransferEventArgs.cs
- InstallHelper.cs
- FormCollection.cs
- UnsafeNativeMethods.cs
- SiteOfOriginPart.cs
- IssuanceTokenProviderState.cs
- ButtonStandardAdapter.cs
- TableCell.cs
- Ops.cs
- ReadOnlyAttribute.cs
- DataObjectSettingDataEventArgs.cs
- GridViewActionList.cs
- IERequestCache.cs
- Transform3DGroup.cs
- XPathSelectionIterator.cs
- DataServiceContext.cs
- PasswordRecovery.cs
- FixedSOMSemanticBox.cs
- AsymmetricSignatureFormatter.cs
- StateItem.cs
- DispatchWrapper.cs
- OleDbInfoMessageEvent.cs
- AssemblyBuilder.cs
- TemplateControlBuildProvider.cs
- CompilerWrapper.cs
- XmlEntity.cs
- UIntPtr.cs
- HiddenFieldPageStatePersister.cs
- DelimitedListTraceListener.cs
- DocumentViewerBase.cs
- MouseOverProperty.cs
- NextPreviousPagerField.cs
- LiteralControl.cs