Code:
/ DotNET / DotNET / 8.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
- TCEAdapterGenerator.cs
- GradientStop.cs
- EqualityArray.cs
- RightNameExpirationInfoPair.cs
- SegmentInfo.cs
- SponsorHelper.cs
- HtmlPhoneCallAdapter.cs
- NotifyCollectionChangedEventArgs.cs
- ColorMap.cs
- ActivityPreviewDesigner.cs
- WebDescriptionAttribute.cs
- ApplicationDirectory.cs
- SignatureToken.cs
- DBParameter.cs
- PassportAuthenticationEventArgs.cs
- SettingsPropertyValue.cs
- CodeTypeDeclaration.cs
- WorkflowWebHostingModule.cs
- XXXOnTypeBuilderInstantiation.cs
- TextDecorations.cs
- MessageProperties.cs
- WmlPageAdapter.cs
- ApplicationCommands.cs
- SqlTypeConverter.cs
- SessionStateContainer.cs
- ByteRangeDownloader.cs
- XPathDescendantIterator.cs
- ListComponentEditor.cs
- PrivilegeNotHeldException.cs
- XsltFunctions.cs
- ToolStripContentPanelRenderEventArgs.cs
- PagesChangedEventArgs.cs
- DataSourceControlBuilder.cs
- XmlSerializerAssemblyAttribute.cs
- SeparatorAutomationPeer.cs
- ComponentCollection.cs
- CodeSnippetTypeMember.cs
- ObservableCollectionDefaultValueFactory.cs
- UrlPath.cs
- ControlPaint.cs
- FakeModelItemImpl.cs
- MatrixCamera.cs
- AnimatedTypeHelpers.cs
- TransformCollection.cs
- ViewLoader.cs
- _BaseOverlappedAsyncResult.cs
- DecoderExceptionFallback.cs
- RoutedEventValueSerializer.cs
- AutomationElement.cs
- SafeHGlobalHandleCritical.cs
- ObjectRef.cs
- HostingPreferredMapPath.cs
- CodeGroup.cs
- OutOfMemoryException.cs
- OneOf.cs
- WrappedIUnknown.cs
- ProcessHostServerConfig.cs
- SessionParameter.cs
- KoreanCalendar.cs
- HostingEnvironment.cs
- CommandManager.cs
- WebPartCatalogCloseVerb.cs
- WindowsUpDown.cs
- MailAddress.cs
- WebServiceData.cs
- ConfigurationSchemaErrors.cs
- Ray3DHitTestResult.cs
- EdgeProfileValidation.cs
- ToolboxControl.cs
- List.cs
- SystemResourceKey.cs
- DesignerCatalogPartChrome.cs
- ParseChildrenAsPropertiesAttribute.cs
- HintTextConverter.cs
- SchemaComplexType.cs
- BlurBitmapEffect.cs
- XmlSerializerVersionAttribute.cs
- AsymmetricAlgorithm.cs
- DuplexChannel.cs
- ListViewAutomationPeer.cs
- DbProviderFactories.cs
- WebPartZoneBase.cs
- WebExceptionStatus.cs
- ChannelCredentials.cs
- RangeBase.cs
- EtwTrace.cs
- SByteConverter.cs
- StorageFunctionMapping.cs
- ButtonChrome.cs
- WindowsRegion.cs
- FormView.cs
- X509RecipientCertificateClientElement.cs
- StringSource.cs
- CounterCreationDataCollection.cs
- ToolBarTray.cs
- ErrorTolerantObjectWriter.cs
- LambdaCompiler.cs
- ReadOnlyAttribute.cs
- TraceContext.cs
- IdentityReference.cs