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
- Unit.cs
- IItemProperties.cs
- DocumentGridPage.cs
- HostSecurityManager.cs
- SequentialUshortCollection.cs
- EventSource.cs
- FixedSOMGroup.cs
- PropertyDescriptorGridEntry.cs
- DependencyPropertyKind.cs
- IntPtr.cs
- dbdatarecord.cs
- SimpleTypeResolver.cs
- StringArrayEditor.cs
- StreamResourceInfo.cs
- EdmType.cs
- UIElementCollection.cs
- WindowsTokenRoleProvider.cs
- IsolatedStorageException.cs
- InvokeGenerator.cs
- ForwardPositionQuery.cs
- TypeConverterAttribute.cs
- COM2PictureConverter.cs
- LabelEditEvent.cs
- DataBoundControlHelper.cs
- DrawingContextDrawingContextWalker.cs
- FolderBrowserDialog.cs
- FreeFormDesigner.cs
- XmlBindingWorker.cs
- NaturalLanguageHyphenator.cs
- ApplyTemplatesAction.cs
- CloseCryptoHandleRequest.cs
- Rect3DConverter.cs
- DataGridViewLinkColumn.cs
- DataGridViewRowPrePaintEventArgs.cs
- RootBuilder.cs
- ThreadExceptionDialog.cs
- MultiAsyncResult.cs
- TypeConverterValueSerializer.cs
- TraceInternal.cs
- ThrowHelper.cs
- CursorConverter.cs
- HwndAppCommandInputProvider.cs
- XmlSerializableWriter.cs
- DBBindings.cs
- LayoutTableCell.cs
- PropertyManager.cs
- FileLogRecordEnumerator.cs
- LinkedDataMemberFieldEditor.cs
- ExpressionDumper.cs
- ThreadNeutralSemaphore.cs
- Executor.cs
- ExpressionBindingsDialog.cs
- RegexWorker.cs
- NaturalLanguageHyphenator.cs
- COAUTHIDENTITY.cs
- InitializationEventAttribute.cs
- RawMouseInputReport.cs
- EventSinkActivityDesigner.cs
- NumberFunctions.cs
- ToolStripItemCollection.cs
- PipeSecurity.cs
- MDIClient.cs
- ForEachAction.cs
- ScrollPattern.cs
- PrimitiveCodeDomSerializer.cs
- DataGridViewHeaderCell.cs
- AnimationClock.cs
- TitleStyle.cs
- TreeSet.cs
- FontFamilyConverter.cs
- SqlConnectionFactory.cs
- ReadOnlyMetadataCollection.cs
- TextClipboardData.cs
- JoinGraph.cs
- TypeConvertions.cs
- SponsorHelper.cs
- NativeMethods.cs
- SendingRequestEventArgs.cs
- WebPartConnectVerb.cs
- ReadOnlyCollection.cs
- XmlFormatExtensionPointAttribute.cs
- ExpressionBuilderContext.cs
- Validator.cs
- NativeWindow.cs
- MatrixStack.cs
- WebException.cs
- AlphabetConverter.cs
- LingerOption.cs
- BuildResultCache.cs
- BCryptSafeHandles.cs
- SQLBinaryStorage.cs
- ListParaClient.cs
- ServiceOperationListItem.cs
- DataGridState.cs
- SwitchAttribute.cs
- Cursor.cs
- ScrollChangedEventArgs.cs
- SortedList.cs
- XPathNodeInfoAtom.cs
- IntegerFacetDescriptionElement.cs