Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Misc / CompatibleIComparer.cs / 1 / CompatibleIComparer.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * This class is used to create hashcodes that are Everett Compatible. * * Copyright (c) 2004 Microsoft Corporation */ namespace System.Collections.Specialized { using Microsoft.Win32; using System.Collections; using System.Runtime.Serialization; using System.Globalization; internal class BackCompatibleStringComparer : IEqualityComparer { static internal IEqualityComparer Default = new BackCompatibleStringComparer(); internal BackCompatibleStringComparer() { } //This comes from VS# 434837 and is specifically written to get backcompat public static int GetHashCode(string obj) { unsafe { fixed (char* src = obj) { int hash = 5381; int c; char* szStr = src; while ((c = *szStr) != 0) { hash = ((hash << 5) + hash) ^ c; ++szStr; } return hash; } } } bool IEqualityComparer.Equals(Object a, Object b) { return Object.Equals(a, b); } public virtual int GetHashCode(Object o) { String obj = o as string; if (obj == null) { return o.GetHashCode(); } return BackCompatibleStringComparer.GetHashCode(obj); } } } // 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
- TextTreePropertyUndoUnit.cs
- SamlAssertionKeyIdentifierClause.cs
- RepeaterItemEventArgs.cs
- LineGeometry.cs
- Schedule.cs
- SchemaManager.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- ReachDocumentReferenceCollectionSerializerAsync.cs
- _ShellExpression.cs
- TabPage.cs
- ContentTextAutomationPeer.cs
- DataService.cs
- FixedSOMTableRow.cs
- WorkItem.cs
- StringWriter.cs
- StackOverflowException.cs
- MaterialGroup.cs
- DataGridComponentEditor.cs
- WebPartsPersonalizationAuthorization.cs
- HttpProxyTransportBindingElement.cs
- HtmlLabelAdapter.cs
- KnownBoxes.cs
- RoleManagerModule.cs
- TagPrefixAttribute.cs
- DisplayInformation.cs
- DiscoveryDocumentLinksPattern.cs
- BindingSource.cs
- SByteConverter.cs
- ScrollBar.cs
- ClientSettings.cs
- PenCursorManager.cs
- BrushValueSerializer.cs
- XmlQueryTypeFactory.cs
- WebPartRestoreVerb.cs
- XmlSerializationReader.cs
- SelectorItemAutomationPeer.cs
- HtmlEncodedRawTextWriter.cs
- EntityKey.cs
- WorkflowInstanceAbortedRecord.cs
- MessageQueueTransaction.cs
- EventRecordWrittenEventArgs.cs
- KeyPressEvent.cs
- HttpListener.cs
- FastEncoderStatics.cs
- Pair.cs
- XNodeValidator.cs
- EncoderFallback.cs
- CoTaskMemUnicodeSafeHandle.cs
- UnsafeNativeMethods.cs
- Calendar.cs
- AuthenticationManager.cs
- MouseWheelEventArgs.cs
- RequestCachingSection.cs
- DES.cs
- SqlReorderer.cs
- EncryptedPackageFilter.cs
- WeakReference.cs
- ToolTipService.cs
- ToolStripRendererSwitcher.cs
- TablePattern.cs
- DataGridViewRowPostPaintEventArgs.cs
- ValidationSummary.cs
- LicenseException.cs
- MimeObjectFactory.cs
- ModelVisual3D.cs
- Events.cs
- InheritablePropertyChangeInfo.cs
- HtmlEmptyTagControlBuilder.cs
- SqlUserDefinedTypeAttribute.cs
- JulianCalendar.cs
- Registry.cs
- DebugTracing.cs
- PersistenceIOParticipant.cs
- CommandLibraryHelper.cs
- SimplePropertyEntry.cs
- ZipIOExtraFieldPaddingElement.cs
- ModuleBuilderData.cs
- ServiceModelConfigurationSectionCollection.cs
- ConfigurationElementCollection.cs
- DetailsViewCommandEventArgs.cs
- RequestCacheEntry.cs
- ByteStorage.cs
- ObsoleteAttribute.cs
- ThicknessAnimationUsingKeyFrames.cs
- DbParameterCollectionHelper.cs
- DateTimeConverter2.cs
- ConfigurationStrings.cs
- ConfigXmlCDataSection.cs
- UseAttributeSetsAction.cs
- ApplicationDirectoryMembershipCondition.cs
- SerializationObjectManager.cs
- RootBrowserWindow.cs
- WSUtilitySpecificationVersion.cs
- ConstraintManager.cs
- XPathNavigatorKeyComparer.cs
- XmlEntityReference.cs
- PathFigureCollectionConverter.cs
- ListViewItem.cs
- NotFiniteNumberException.cs
- MethodAccessException.cs