Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Collections / Generic / HashSetEqualityComparer.cs / 1305376 / HashSetEqualityComparer.cs
using System; using System.Collections; using System.Collections.Generic; namespace System.Collections.Generic { ////// Equality comparer for hashsets of hashsets /// ///[Serializable()] internal class HashSetEqualityComparer : IEqualityComparer > { private IEqualityComparer m_comparer; public HashSetEqualityComparer() { m_comparer = EqualityComparer .Default; } public HashSetEqualityComparer(IEqualityComparer comparer) { if (comparer == null) { m_comparer = EqualityComparer .Default; } else { m_comparer = comparer; } } // using m_comparer to keep equals properties in tact; don't want to choose one of the comparers public bool Equals(HashSet x, HashSet y) { return HashSet .HashSetEquals(x, y, m_comparer); } public int GetHashCode(HashSet obj) { int hashCode = 0; if (obj != null) { foreach (T t in obj) { hashCode = hashCode ^ (m_comparer.GetHashCode(t) & 0x7FFFFFFF); } } // else returns hashcode of 0 for null hashsets return hashCode; } // Equals method for the comparer itself. public override bool Equals(Object obj){ HashSetEqualityComparer comparer = obj as HashSetEqualityComparer ; if (comparer == null) { return false; } return (this.m_comparer == comparer.m_comparer); } public override int GetHashCode() { return m_comparer.GetHashCode(); } } } // 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
- UpdateEventArgs.cs
- ElementInit.cs
- XmlSerializerObjectSerializer.cs
- FtpWebResponse.cs
- RepeaterItem.cs
- BadImageFormatException.cs
- DropShadowBitmapEffect.cs
- EntityDataSourceReferenceGroup.cs
- BitmapEffectInputConnector.cs
- InternalConfigRoot.cs
- MD5.cs
- EventPropertyMap.cs
- JsonQNameDataContract.cs
- TileBrush.cs
- AnimationException.cs
- PlainXmlDeserializer.cs
- TemplateBuilder.cs
- OleServicesContext.cs
- FormParameter.cs
- EditorZoneDesigner.cs
- XmlDesignerDataSourceView.cs
- DocumentReference.cs
- FileDialog_Vista_Interop.cs
- WebPartEditorApplyVerb.cs
- DBSqlParserTableCollection.cs
- NetStream.cs
- PanelDesigner.cs
- AddInBase.cs
- XamlWriter.cs
- __FastResourceComparer.cs
- TreeViewHitTestInfo.cs
- Point3DValueSerializer.cs
- SafeHandles.cs
- TemplateColumn.cs
- CornerRadius.cs
- RemoveStoryboard.cs
- DisplayNameAttribute.cs
- EventEntry.cs
- ObservableCollection.cs
- ReaderWriterLockWrapper.cs
- FontCollection.cs
- NamespaceExpr.cs
- EditorAttributeInfo.cs
- ColumnHeader.cs
- RulePatternOps.cs
- OdbcErrorCollection.cs
- Icon.cs
- RuleSettings.cs
- BuildProvidersCompiler.cs
- Identifier.cs
- MessageBox.cs
- PolyLineSegment.cs
- DeleteIndexBinder.cs
- PersonalizablePropertyEntry.cs
- OdbcConnectionString.cs
- InfiniteTimeSpanConverter.cs
- XhtmlBasicTextViewAdapter.cs
- SafeEventHandle.cs
- UriTemplateTrieNode.cs
- CodeSubDirectoriesCollection.cs
- SQLCharsStorage.cs
- SqlDataSourceStatusEventArgs.cs
- TdsParser.cs
- Dictionary.cs
- Vertex.cs
- InfiniteTimeSpanConverter.cs
- DivideByZeroException.cs
- RadialGradientBrush.cs
- XmlSchemaAttributeGroup.cs
- ClonableStack.cs
- BamlResourceSerializer.cs
- CorrelationManager.cs
- IssuedTokenClientBehaviorsElementCollection.cs
- ByteAnimation.cs
- InputBuffer.cs
- ReferenceEqualityComparer.cs
- DataServiceResponse.cs
- DocumentGridPage.cs
- ThousandthOfEmRealDoubles.cs
- ActiveXHost.cs
- WebPartHelpVerb.cs
- TemplatePartAttribute.cs
- AnonymousIdentificationModule.cs
- ElementMarkupObject.cs
- HostedTransportConfigurationBase.cs
- ScriptResourceInfo.cs
- TypedElement.cs
- parserscommon.cs
- DisplayMemberTemplateSelector.cs
- Wildcard.cs
- DateTime.cs
- ButtonBase.cs
- IdleTimeoutMonitor.cs
- OdbcError.cs
- DefaultWorkflowLoaderService.cs
- DataBindingExpressionBuilder.cs
- DataFieldEditor.cs
- ExitEventArgs.cs
- TreeNodeStyleCollection.cs
- AppLevelCompilationSectionCache.cs