Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Misc / CompatibleIComparer.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EndpointFilterProvider.cs
- QueryableDataSourceHelper.cs
- ExpressionBindingCollection.cs
- XmlAttribute.cs
- LinearKeyFrames.cs
- StringArrayConverter.cs
- Rijndael.cs
- ModelItemDictionary.cs
- StoreUtilities.cs
- DataGridViewComboBoxColumn.cs
- BitStream.cs
- SQLMoney.cs
- AdPostCacheSubstitution.cs
- CodeAttributeDeclaration.cs
- path.cs
- SoapHttpTransportImporter.cs
- DiagnosticsConfigurationHandler.cs
- Behavior.cs
- SslStreamSecurityElement.cs
- EventListenerClientSide.cs
- Parameter.cs
- PropertyChangingEventArgs.cs
- XmlDataProvider.cs
- CollectionViewSource.cs
- WebCategoryAttribute.cs
- PathSegment.cs
- SerialErrors.cs
- ConfigurationLoaderException.cs
- PrintDialogException.cs
- Delay.cs
- IteratorFilter.cs
- SortDescription.cs
- XmlAttributeAttribute.cs
- Brush.cs
- SqlRetyper.cs
- SHA256Cng.cs
- OutputCacheProfileCollection.cs
- TriggerCollection.cs
- EmptyStringExpandableObjectConverter.cs
- TcpAppDomainProtocolHandler.cs
- GradientStopCollection.cs
- WorkflowInvoker.cs
- StylusPointCollection.cs
- BrowserCapabilitiesFactoryBase.cs
- WebPartConnectionsCancelVerb.cs
- SqlFunctionAttribute.cs
- ApplicationDirectoryMembershipCondition.cs
- _Win32.cs
- ObjectSet.cs
- ConfigurationFileMap.cs
- StandardCommands.cs
- VisualStyleInformation.cs
- ValidationError.cs
- COM2ColorConverter.cs
- unitconverter.cs
- NameSpaceEvent.cs
- ConfigurationLocation.cs
- OraclePermissionAttribute.cs
- _Connection.cs
- XmlLanguage.cs
- CqlParser.cs
- SynchronizedCollection.cs
- JournalEntryStack.cs
- UriTemplateTrieLocation.cs
- System.Data_BID.cs
- CustomAttributeSerializer.cs
- DataGridViewRowCancelEventArgs.cs
- SafeHGlobalHandleCritical.cs
- VisualTarget.cs
- ExtendedProtectionPolicy.cs
- ToolStripItemDataObject.cs
- RuleSetBrowserDialog.cs
- MethodExpression.cs
- UserControlBuildProvider.cs
- DataServiceProcessingPipeline.cs
- _NTAuthentication.cs
- State.cs
- FileAuthorizationModule.cs
- FloaterParaClient.cs
- XmlEventCache.cs
- IdnMapping.cs
- WebPartCollection.cs
- PersonalizationState.cs
- ParameterCollectionEditorForm.cs
- SmiGettersStream.cs
- ScalarOps.cs
- XmlNodeComparer.cs
- InstanceData.cs
- TextEncodedRawTextWriter.cs
- SubMenuStyleCollectionEditor.cs
- SecureStringHasher.cs
- ExpanderAutomationPeer.cs
- AdRotatorDesigner.cs
- QuinticEase.cs
- DataAdapter.cs
- ClientRuntimeConfig.cs
- ValidationRuleCollection.cs
- Duration.cs
- Application.cs
- SessionIDManager.cs