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
- AssemblyInfo.cs
- shaperfactoryquerycacheentry.cs
- PropertyConverter.cs
- EventWaitHandle.cs
- HeaderCollection.cs
- AttributeExtensions.cs
- ValuePattern.cs
- basevalidator.cs
- HtmlImage.cs
- ObjectDataSourceEventArgs.cs
- UnSafeCharBuffer.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- PropertyGridCommands.cs
- MemberAccessException.cs
- ContextMenu.cs
- LocatorBase.cs
- SliderAutomationPeer.cs
- StringFunctions.cs
- NewItemsContextMenuStrip.cs
- ObjectCacheSettings.cs
- MetadataSource.cs
- WeakReferenceEnumerator.cs
- EventLogPermissionEntryCollection.cs
- CodeTypeParameter.cs
- CorrelationKey.cs
- StructuredTypeEmitter.cs
- Int32Storage.cs
- HebrewNumber.cs
- WeakEventManager.cs
- XPathAncestorIterator.cs
- BasicExpandProvider.cs
- DefinitionUpdate.cs
- VisualSerializer.cs
- DateTimeUtil.cs
- DefaultWorkflowLoaderService.cs
- ServiceReference.cs
- WebPartCatalogCloseVerb.cs
- ClientUrlResolverWrapper.cs
- NavigationProperty.cs
- SqlHelper.cs
- InputProcessorProfiles.cs
- XmlText.cs
- ListViewInsertionMark.cs
- ACE.cs
- XmlSchemaSequence.cs
- FacetChecker.cs
- SessionIDManager.cs
- FieldBuilder.cs
- BitmapEffectDrawingContent.cs
- ImageMetadata.cs
- Soap.cs
- Util.cs
- ReaderWriterLockWrapper.cs
- UpdatePanelTrigger.cs
- IsolatedStoragePermission.cs
- SecurityResources.cs
- QuaternionValueSerializer.cs
- NameTable.cs
- PopupRootAutomationPeer.cs
- LiteralDesigner.cs
- FolderBrowserDialog.cs
- PauseStoryboard.cs
- DataServiceException.cs
- HostedHttpContext.cs
- ConnectionInterfaceCollection.cs
- FixedDocumentSequencePaginator.cs
- ConsoleTraceListener.cs
- TabControlEvent.cs
- ConsumerConnectionPoint.cs
- BaseAppDomainProtocolHandler.cs
- ImageSource.cs
- PenThreadPool.cs
- ExpressionBuilderContext.cs
- PackageStore.cs
- GlobalizationAssembly.cs
- CollectionEditor.cs
- AdornerHitTestResult.cs
- MimeParameters.cs
- SynchronousChannel.cs
- BevelBitmapEffect.cs
- CommonProperties.cs
- DesignTimeVisibleAttribute.cs
- SqlSelectStatement.cs
- ISAPIRuntime.cs
- clipboard.cs
- DemultiplexingClientMessageFormatter.cs
- IntersectQueryOperator.cs
- SortQuery.cs
- DataGridViewRow.cs
- DataMemberConverter.cs
- GeneralTransform.cs
- InvalidOleVariantTypeException.cs
- altserialization.cs
- SymbolMethod.cs
- ObjectSet.cs
- GatewayIPAddressInformationCollection.cs
- HttpValueCollection.cs
- MessageQueuePermissionAttribute.cs
- MustUnderstandSoapException.cs
- Trace.cs