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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- NameValuePair.cs
- WebEventTraceProvider.cs
- CodeExpressionCollection.cs
- ScaleTransform3D.cs
- WorkflowViewService.cs
- FrameworkElementAutomationPeer.cs
- ISessionStateStore.cs
- Parsers.cs
- CompilationPass2TaskInternal.cs
- ConfigXmlText.cs
- ObjectDataSourceWizardForm.cs
- StringWriter.cs
- ContractAdapter.cs
- QilInvokeEarlyBound.cs
- HostProtectionPermission.cs
- QilInvokeLateBound.cs
- Byte.cs
- JournalEntry.cs
- LoginView.cs
- ThemeInfoAttribute.cs
- ActivityDesignerLayoutSerializers.cs
- ResourceType.cs
- TextServicesContext.cs
- VirtualDirectoryMappingCollection.cs
- DataServiceContext.cs
- arc.cs
- CatalogZoneAutoFormat.cs
- ResourceProviderFactory.cs
- ItemType.cs
- CodeExpressionStatement.cs
- WMIInterop.cs
- TextOptionsInternal.cs
- ForwardPositionQuery.cs
- ValidationUtility.cs
- SqlServices.cs
- CacheDict.cs
- HotSpotCollection.cs
- Cursors.cs
- SafeWaitHandle.cs
- StreamReader.cs
- TCEAdapterGenerator.cs
- ToolStripContentPanelRenderEventArgs.cs
- CookielessData.cs
- SourceInterpreter.cs
- AutoSizeComboBox.cs
- IntSecurity.cs
- DataSourceConverter.cs
- AspNetRouteServiceHttpHandler.cs
- ButtonBaseDesigner.cs
- WizardPanel.cs
- PopupEventArgs.cs
- GridViewUpdateEventArgs.cs
- TemplateControl.cs
- WebExceptionStatus.cs
- PackageRelationship.cs
- CheckBox.cs
- SqlServer2KCompatibilityAnnotation.cs
- XmlSchemaValidator.cs
- MergeEnumerator.cs
- CryptoApi.cs
- RelatedPropertyManager.cs
- Application.cs
- ProfilePropertyNameValidator.cs
- Int32Rect.cs
- PrintController.cs
- BufferedGraphics.cs
- ConfigXmlAttribute.cs
- ConfigurationPropertyAttribute.cs
- MergablePropertyAttribute.cs
- ExpressionPrinter.cs
- EditCommandColumn.cs
- MutexSecurity.cs
- TrustSection.cs
- ProfileSection.cs
- ProfileInfo.cs
- AppDomainFactory.cs
- NotificationContext.cs
- ThreadSafeMessageFilterTable.cs
- TraceRecord.cs
- RandomNumberGenerator.cs
- OleDbDataAdapter.cs
- ChildDocumentBlock.cs
- ProvidePropertyAttribute.cs
- PrintPreviewControl.cs
- ProfileInfo.cs
- TypeBuilder.cs
- MsmqDecodeHelper.cs
- TypedMessageConverter.cs
- SamlAdvice.cs
- BevelBitmapEffect.cs
- ToolStripItem.cs
- TemplateAction.cs
- _DomainName.cs
- FindCriteriaCD1.cs
- WinInet.cs
- ObjectMaterializedEventArgs.cs
- sqlstateclientmanager.cs
- ConnectionConsumerAttribute.cs
- ArgumentException.cs
- BitmapEffectInputData.cs