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
- BamlRecordWriter.cs
- InputReport.cs
- TransformValueSerializer.cs
- ILGen.cs
- InvariantComparer.cs
- EventListenerClientSide.cs
- ScrollData.cs
- CursorConverter.cs
- httpserverutility.cs
- UseManagedPresentationBindingElement.cs
- MultiBindingExpression.cs
- EncodingFallbackAwareXmlTextWriter.cs
- InternalMappingException.cs
- Pair.cs
- TemplateBindingExpression.cs
- NCryptNative.cs
- RectValueSerializer.cs
- CharacterHit.cs
- WindowVisualStateTracker.cs
- ResourceContainer.cs
- ObjectDataSource.cs
- IIS7WorkerRequest.cs
- SchemaImporterExtensionElementCollection.cs
- ErrorHandlerFaultInfo.cs
- PathSegmentCollection.cs
- AdapterSwitches.cs
- SafeWaitHandle.cs
- FrameworkContentElement.cs
- TypeConstant.cs
- EntityClassGenerator.cs
- CatalogZoneBase.cs
- InfoCardConstants.cs
- InputMethodStateTypeInfo.cs
- WebPartEditorApplyVerb.cs
- HttpPostProtocolReflector.cs
- MatrixStack.cs
- HttpCacheVary.cs
- SoapReflectionImporter.cs
- UrlMappingsSection.cs
- SchemaAttDef.cs
- ObjectStateEntry.cs
- CodeParameterDeclarationExpressionCollection.cs
- InstalledVoice.cs
- StandardTransformFactory.cs
- TreeNodeStyleCollection.cs
- TypeInitializationException.cs
- Int32RectValueSerializer.cs
- TextEffect.cs
- QuaternionConverter.cs
- DbExpressionVisitor_TResultType.cs
- VerificationAttribute.cs
- SchemaNamespaceManager.cs
- Lookup.cs
- StylusTip.cs
- HtmlInputReset.cs
- DefaultObjectMappingItemCollection.cs
- LeafCellTreeNode.cs
- ToolboxDataAttribute.cs
- HierarchicalDataSourceConverter.cs
- LinqTreeNodeEvaluator.cs
- RegexWorker.cs
- SQLRoleProvider.cs
- IMembershipProvider.cs
- SoapEnumAttribute.cs
- RemotingSurrogateSelector.cs
- InkCanvasSelection.cs
- Parameter.cs
- TextProperties.cs
- AnonymousIdentificationSection.cs
- SQLUtility.cs
- CodeMemberField.cs
- OutputCacheSettingsSection.cs
- ColumnResizeAdorner.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- InitializerFacet.cs
- MissingFieldException.cs
- _SslState.cs
- NativeMethods.cs
- WindowsAltTab.cs
- ProviderMetadataCachedInformation.cs
- ValueTypeFixupInfo.cs
- ListDictionary.cs
- BindingBase.cs
- CultureNotFoundException.cs
- WmlControlAdapter.cs
- ListItem.cs
- TextTreeExtractElementUndoUnit.cs
- WebMessageEncodingElement.cs
- EdmSchemaError.cs
- PinnedBufferMemoryStream.cs
- PreservationFileReader.cs
- GradientSpreadMethodValidation.cs
- SiteMapDataSource.cs
- NodeFunctions.cs
- Visual.cs
- XhtmlStyleClass.cs
- WindowsTokenRoleProvider.cs
- StringCollection.cs
- WeakReferenceKey.cs
- SchemaNamespaceManager.cs