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
- ImageCollectionCodeDomSerializer.cs
- RequestStatusBarUpdateEventArgs.cs
- Matrix3D.cs
- MdiWindowListStrip.cs
- InputScopeAttribute.cs
- Size.cs
- MediaElementAutomationPeer.cs
- ParentUndoUnit.cs
- RequestReplyCorrelator.cs
- Visual3DCollection.cs
- FixedSOMTableCell.cs
- RuntimeCompatibilityAttribute.cs
- GZipStream.cs
- DataGridViewCellStyleChangedEventArgs.cs
- UInt64.cs
- Deserializer.cs
- MenuItemCollectionEditorDialog.cs
- BuildManager.cs
- SafeTokenHandle.cs
- CompilerGlobalScopeAttribute.cs
- BaseParaClient.cs
- ToolboxDataAttribute.cs
- NetworkInformationPermission.cs
- SynchronousChannel.cs
- RequestResizeEvent.cs
- ConnectionStringsSection.cs
- BuiltInPermissionSets.cs
- SymbolMethod.cs
- SqlUtils.cs
- SchemaExporter.cs
- DependentList.cs
- PackageController.cs
- TransformPattern.cs
- OutputCacheProviderCollection.cs
- QuaternionConverter.cs
- DocobjHost.cs
- Expression.cs
- ProfileSettings.cs
- CodeAttributeArgumentCollection.cs
- SByteConverter.cs
- EntityDataSourceSelectedEventArgs.cs
- EtwTrackingBehaviorElement.cs
- DBSqlParser.cs
- ObjectStateFormatter.cs
- BitmapCodecInfoInternal.cs
- AttributeUsageAttribute.cs
- Padding.cs
- TableLayoutPanelCodeDomSerializer.cs
- FactoryGenerator.cs
- DataGridTableCollection.cs
- ClientSettingsProvider.cs
- FilteredAttributeCollection.cs
- FontSource.cs
- MenuItemStyle.cs
- RealProxy.cs
- PasswordRecovery.cs
- PropertyFilterAttribute.cs
- KnownColorTable.cs
- WebPartUtil.cs
- DataGridViewTextBoxEditingControl.cs
- ClientApiGenerator.cs
- Grid.cs
- MeasurementDCInfo.cs
- GenerateDerivedKeyRequest.cs
- Table.cs
- XmlDataSourceView.cs
- DesigntimeLicenseContext.cs
- UpdateTracker.cs
- SqlGenericUtil.cs
- UdpAnnouncementEndpoint.cs
- ImpersonationOption.cs
- SQLDateTime.cs
- LookupBindingPropertiesAttribute.cs
- SubMenuStyle.cs
- EventLogEntry.cs
- MenuTracker.cs
- Italic.cs
- HuffCodec.cs
- DataGridViewColumnHeaderCell.cs
- SymmetricAlgorithm.cs
- WsatConfiguration.cs
- EntityCommand.cs
- XamlFilter.cs
- HttpListenerResponse.cs
- GridViewCancelEditEventArgs.cs
- PerformanceCounterPermissionEntryCollection.cs
- HierarchicalDataBoundControl.cs
- RangeValueProviderWrapper.cs
- documentation.cs
- WindowPattern.cs
- ChannelManager.cs
- TreeBuilder.cs
- TraceHandlerErrorFormatter.cs
- ResourceExpression.cs
- PopupControlService.cs
- SimplePropertyEntry.cs
- WindowsPen.cs
- ByteStorage.cs
- NativeMethods.cs
- ListBoxAutomationPeer.cs