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
- DataFormat.cs
- MetaModel.cs
- PrivilegeNotHeldException.cs
- KerberosSecurityTokenParameters.cs
- WhitespaceRule.cs
- httpserverutility.cs
- WebBrowserDocumentCompletedEventHandler.cs
- CodeDomDecompiler.cs
- TextTreePropertyUndoUnit.cs
- UIElement3DAutomationPeer.cs
- TableStyle.cs
- SystemEvents.cs
- SoapHttpTransportImporter.cs
- ScrollProviderWrapper.cs
- ApplicationId.cs
- Adorner.cs
- PublisherMembershipCondition.cs
- PauseStoryboard.cs
- ListControlDesigner.cs
- HighlightComponent.cs
- CompilerInfo.cs
- DictionaryBase.cs
- SelectionWordBreaker.cs
- SplineKeyFrames.cs
- BinaryUtilClasses.cs
- AlphabeticalEnumConverter.cs
- BooleanAnimationBase.cs
- FolderBrowserDialog.cs
- HtmlCalendarAdapter.cs
- ElapsedEventArgs.cs
- DictionaryGlobals.cs
- TextViewDesigner.cs
- FileStream.cs
- BamlWriter.cs
- ControlEvent.cs
- GradientBrush.cs
- PartialArray.cs
- StringAttributeCollection.cs
- ParenthesizePropertyNameAttribute.cs
- Point4DValueSerializer.cs
- EventLogPermissionEntryCollection.cs
- unsafeIndexingFilterStream.cs
- _LocalDataStoreMgr.cs
- WaitHandleCannotBeOpenedException.cs
- Geometry3D.cs
- DataSvcMapFile.cs
- URI.cs
- ServiceDescriptionImporter.cs
- HttpCookiesSection.cs
- PreviewPageInfo.cs
- AnnotationAuthorChangedEventArgs.cs
- RealizationContext.cs
- WebEventCodes.cs
- Models.cs
- SchemaSetCompiler.cs
- ProfileService.cs
- FillErrorEventArgs.cs
- MessageBuffer.cs
- designeractionbehavior.cs
- XmlFileEditor.cs
- TextSimpleMarkerProperties.cs
- WindowsGraphics2.cs
- ApplicationDirectoryMembershipCondition.cs
- ToolStripDropDownMenu.cs
- _ChunkParse.cs
- SqlConnectionManager.cs
- BasicHttpMessageCredentialType.cs
- FixedPosition.cs
- XAMLParseException.cs
- SafeBuffer.cs
- LinearGradientBrush.cs
- EditBehavior.cs
- HtmlUtf8RawTextWriter.cs
- TaiwanCalendar.cs
- CodeIterationStatement.cs
- SqlDataSourceSummaryPanel.cs
- GradientStopCollection.cs
- SpecialFolderEnumConverter.cs
- SupportedAddressingMode.cs
- EpmAttributeNameBuilder.cs
- DictationGrammar.cs
- Dictionary.cs
- PrefixQName.cs
- SqlLiftIndependentRowExpressions.cs
- TreeNodeConverter.cs
- SchemaImporterExtensionsSection.cs
- SmtpClient.cs
- MetadataCollection.cs
- SessionEndedEventArgs.cs
- ProcessHostMapPath.cs
- MatrixStack.cs
- Util.cs
- _NetworkingPerfCounters.cs
- StylusButton.cs
- SpanIndex.cs
- EndSelectCardRequest.cs
- TableLayoutStyle.cs
- ListManagerBindingsCollection.cs
- EntityDataSourceState.cs
- SiteOfOriginPart.cs