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
- ConfigurationManagerHelperFactory.cs
- SystemInformation.cs
- DataColumnCollection.cs
- CodeVariableReferenceExpression.cs
- WebBrowsableAttribute.cs
- ExpressionBuilderContext.cs
- EventLogTraceListener.cs
- DbConnectionStringCommon.cs
- VideoDrawing.cs
- XmlQueryTypeFactory.cs
- Focus.cs
- NetSectionGroup.cs
- FloatMinMaxAggregationOperator.cs
- CompressedStack.cs
- UrlUtility.cs
- FieldTemplateUserControl.cs
- HttpProfileGroupBase.cs
- CatchBlock.cs
- MenuCommand.cs
- AllMembershipCondition.cs
- MailHeaderInfo.cs
- Subset.cs
- RawMouseInputReport.cs
- RichTextBoxAutomationPeer.cs
- RenderContext.cs
- CompositeDuplexElement.cs
- ResXFileRef.cs
- DescendentsWalkerBase.cs
- DataGridColumnCollection.cs
- XPathDocumentNavigator.cs
- LookupBindingPropertiesAttribute.cs
- EventHandlerList.cs
- TextSpanModifier.cs
- FigureHelper.cs
- ProxyWebPartConnectionCollection.cs
- RegexRunner.cs
- XmlSchemaAttribute.cs
- Solver.cs
- XmlNodeReader.cs
- LostFocusEventManager.cs
- xmlsaver.cs
- PartBasedPackageProperties.cs
- TextParaClient.cs
- WorkflowViewService.cs
- ColumnMapCopier.cs
- Application.cs
- DataGridViewTextBoxEditingControl.cs
- IxmlLineInfo.cs
- NullableFloatAverageAggregationOperator.cs
- TableDetailsCollection.cs
- ExpressionBuilderCollection.cs
- SemaphoreSecurity.cs
- sapiproxy.cs
- ExpressionReplacer.cs
- DataBindEngine.cs
- ConfigurationManagerHelperFactory.cs
- SqlBulkCopy.cs
- CollectionChangedEventManager.cs
- PriorityItem.cs
- ScriptingSectionGroup.cs
- SoapSchemaImporter.cs
- EnlistmentTraceIdentifier.cs
- DockPattern.cs
- BitmapEffectDrawingContent.cs
- Utilities.cs
- AsyncCodeActivityContext.cs
- InputProcessorProfilesLoader.cs
- CookieHandler.cs
- ToolBarButton.cs
- _Win32.cs
- HitTestWithPointDrawingContextWalker.cs
- WriteStateInfoBase.cs
- GridViewSortEventArgs.cs
- SlotInfo.cs
- ServiceDescriptions.cs
- ByteFacetDescriptionElement.cs
- ScriptResourceDefinition.cs
- SwitchElementsCollection.cs
- TextRangeEdit.cs
- HeaderedItemsControl.cs
- ToolStripDropDownItemDesigner.cs
- QueryComponents.cs
- ProcessDesigner.cs
- FlowDocumentPageViewerAutomationPeer.cs
- ProfileServiceManager.cs
- AsyncOperationManager.cs
- OperationAbortedException.cs
- WebBrowser.cs
- HwndHost.cs
- recordstate.cs
- DataObjectSettingDataEventArgs.cs
- ECDsa.cs
- ContentElement.cs
- ReverseInheritProperty.cs
- LinqDataSourceContextData.cs
- SimpleMailWebEventProvider.cs
- ExpandableObjectConverter.cs
- ConfigurationPropertyAttribute.cs
- FrameworkElementAutomationPeer.cs
- DataGridToolTip.cs