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
- CompositionTarget.cs
- MiniLockedBorderGlyph.cs
- ModelPropertyCollectionImpl.cs
- TranslateTransform3D.cs
- MemberAssignment.cs
- CqlLexerHelpers.cs
- DataKeyArray.cs
- EventRecord.cs
- ServiceOperationParameter.cs
- RowToParametersTransformer.cs
- MobileControlsSectionHelper.cs
- DNS.cs
- MenuItemStyleCollection.cs
- HostingEnvironmentException.cs
- DragStartedEventArgs.cs
- XmlSchemaElement.cs
- ProxyHelper.cs
- MetabaseServerConfig.cs
- XmlStreamStore.cs
- DataError.cs
- OdbcRowUpdatingEvent.cs
- XsdDuration.cs
- SafeLibraryHandle.cs
- ReturnEventArgs.cs
- DecimalAnimation.cs
- OracleString.cs
- XmlBinaryReaderSession.cs
- SqlFunctionAttribute.cs
- ColumnHeader.cs
- InvokePattern.cs
- IdentityReference.cs
- DialogResultConverter.cs
- DefaultHttpHandler.cs
- RootNamespaceAttribute.cs
- ScriptBehaviorDescriptor.cs
- ControlCommandSet.cs
- securitymgrsite.cs
- DictionarySurrogate.cs
- NavigationProgressEventArgs.cs
- DataReceivedEventArgs.cs
- BamlLocalizabilityResolver.cs
- UshortList2.cs
- TailPinnedEventArgs.cs
- PropertySourceInfo.cs
- QuestionEventArgs.cs
- DataBoundLiteralControl.cs
- RoutingConfiguration.cs
- XmlElementAttribute.cs
- WindowsListViewItemStartMenu.cs
- Grid.cs
- ManualResetEvent.cs
- DbException.cs
- RequestContext.cs
- RectKeyFrameCollection.cs
- SQLRoleProvider.cs
- SamlAuthenticationStatement.cs
- IndexingContentUnit.cs
- TargetConverter.cs
- DataContractAttribute.cs
- Decorator.cs
- AutoGeneratedField.cs
- DictionaryContent.cs
- DynamicField.cs
- CharUnicodeInfo.cs
- StateMachineDesignerPaint.cs
- ArraySortHelper.cs
- SmtpDigestAuthenticationModule.cs
- XmlSchemaSimpleTypeRestriction.cs
- XComponentModel.cs
- ActiveDocumentEvent.cs
- ConfigurationStrings.cs
- UriExt.cs
- DbConnectionOptions.cs
- XmlWriterTraceListener.cs
- CodeAttachEventStatement.cs
- TypeToken.cs
- EntityConnectionStringBuilder.cs
- InputProcessorProfilesLoader.cs
- UnsafeNativeMethods.cs
- XmlException.cs
- PackagingUtilities.cs
- Site.cs
- SoapTypeAttribute.cs
- FormatSelectingMessageInspector.cs
- HMACSHA1.cs
- ReadOnlyDataSource.cs
- Pens.cs
- CodeBlockBuilder.cs
- PolyLineSegment.cs
- MessageQueueCriteria.cs
- XmlProcessingInstruction.cs
- NativeRightsManagementAPIsStructures.cs
- LogRecordSequence.cs
- UIEndRequest.cs
- FontFamilyIdentifier.cs
- ToolStripDropDownClosedEventArgs.cs
- IDispatchConstantAttribute.cs
- PagesSection.cs
- HwndSourceParameters.cs
- QueryHandler.cs