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
- LinqDataSourceContextEventArgs.cs
- Version.cs
- Scene3D.cs
- ReferentialConstraint.cs
- WebOperationContext.cs
- SqlConnectionPoolGroupProviderInfo.cs
- ResourceReferenceKeyNotFoundException.cs
- Mutex.cs
- IQueryable.cs
- RegionData.cs
- WebPartConnectionsCancelVerb.cs
- HtmlMeta.cs
- MetafileHeaderEmf.cs
- HwndAppCommandInputProvider.cs
- RedBlackList.cs
- Application.cs
- SecureConversationSecurityTokenParameters.cs
- IMembershipProvider.cs
- GuidConverter.cs
- ConfigUtil.cs
- DecoderNLS.cs
- TextFormatterImp.cs
- BatchStream.cs
- IUnknownConstantAttribute.cs
- ObjectStateManagerMetadata.cs
- AccessedThroughPropertyAttribute.cs
- XamlTreeBuilder.cs
- XmlEventCache.cs
- LeftCellWrapper.cs
- PathFigureCollection.cs
- TimeoutException.cs
- WebPageTraceListener.cs
- XmlAtomicValue.cs
- AdornerPresentationContext.cs
- InvalidateEvent.cs
- TimeZoneInfo.cs
- HttpHandlerActionCollection.cs
- EditorPartCollection.cs
- PathSegment.cs
- WebConfigurationFileMap.cs
- StringConverter.cs
- GridErrorDlg.cs
- Documentation.cs
- MailAddressCollection.cs
- PrivilegeNotHeldException.cs
- SafeMemoryMappedFileHandle.cs
- TypeDescriptionProvider.cs
- VersionPair.cs
- MD5HashHelper.cs
- ParagraphResult.cs
- ProfileSettingsCollection.cs
- CodeExpressionRuleDeclaration.cs
- TrustLevel.cs
- OutputCacheEntry.cs
- ChtmlMobileTextWriter.cs
- MulticastIPAddressInformationCollection.cs
- PtsPage.cs
- RemotingConfiguration.cs
- UxThemeWrapper.cs
- ThreadAbortException.cs
- UpdateException.cs
- DesignOnlyAttribute.cs
- SourceFileInfo.cs
- ArrayElementGridEntry.cs
- ConfigurationException.cs
- Main.cs
- CustomAttribute.cs
- OdbcParameter.cs
- Metadata.cs
- LinkedList.cs
- TypefaceMetricsCache.cs
- ListBox.cs
- HttpCookie.cs
- EmptyEnumerable.cs
- DataServiceOperationContext.cs
- DatagridviewDisplayedBandsData.cs
- lengthconverter.cs
- RawStylusInput.cs
- LinkButton.cs
- FontFamily.cs
- SqlReorderer.cs
- WizardSideBarListControlItem.cs
- DetailsViewRowCollection.cs
- VerticalAlignConverter.cs
- ModelPropertyDescriptor.cs
- SchemaElementDecl.cs
- _WinHttpWebProxyDataBuilder.cs
- WindowsMenu.cs
- HybridDictionary.cs
- TailPinnedEventArgs.cs
- AsymmetricKeyExchangeDeformatter.cs
- TableRowCollection.cs
- SplineKeyFrames.cs
- _FtpDataStream.cs
- GAC.cs
- Literal.cs
- ClearTypeHintValidation.cs
- TextRangeBase.cs
- InvalidOleVariantTypeException.cs
- AuditLevel.cs