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
- BitmapEffect.cs
- MenuItemStyleCollectionEditor.cs
- PlainXmlSerializer.cs
- DesignerSerializationVisibilityAttribute.cs
- HtmlInputRadioButton.cs
- XmlQueryType.cs
- HtmlTitle.cs
- OleDbInfoMessageEvent.cs
- MenuAdapter.cs
- LinearKeyFrames.cs
- Serializer.cs
- NativeBuffer.cs
- RegistryKey.cs
- WindowInteropHelper.cs
- BidOverLoads.cs
- SingleKeyFrameCollection.cs
- ViewStateChangedEventArgs.cs
- CommandEventArgs.cs
- AsyncParams.cs
- MatrixCamera.cs
- StructureChangedEventArgs.cs
- InputQueue.cs
- SizeF.cs
- SlipBehavior.cs
- SettingsPropertyCollection.cs
- ActivityDesignerResources.cs
- ServiceObjectContainer.cs
- AssociationSetMetadata.cs
- TemplateAction.cs
- SelectionPatternIdentifiers.cs
- MultipartContentParser.cs
- WebResourceAttribute.cs
- cache.cs
- DesignTimeHTMLTextWriter.cs
- SchemaNames.cs
- CodeArgumentReferenceExpression.cs
- XmlSchemaInfo.cs
- HttpCachePolicy.cs
- FileLoadException.cs
- Attributes.cs
- SSmlParser.cs
- DataPager.cs
- OleDbException.cs
- UndoEngine.cs
- InstanceValue.cs
- FilteredDataSetHelper.cs
- ChildTable.cs
- XmlMapping.cs
- RepeaterCommandEventArgs.cs
- SplineKeyFrames.cs
- MetabaseSettings.cs
- Soap12ServerProtocol.cs
- DSASignatureFormatter.cs
- SQLStringStorage.cs
- ComponentSerializationService.cs
- SessionPageStatePersister.cs
- SourceFileInfo.cs
- SimpleNameService.cs
- InternalSafeNativeMethods.cs
- NullReferenceException.cs
- SQLMembershipProvider.cs
- CollectionBase.cs
- LineUtil.cs
- CuspData.cs
- ItemsControl.cs
- TTSEvent.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- SafeNativeMethods.cs
- Model3D.cs
- ListItemCollection.cs
- InlineCollection.cs
- SqlConnectionManager.cs
- GlobalItem.cs
- AdornerLayer.cs
- ThicknessAnimation.cs
- PermissionListSet.cs
- ReverseQueryOperator.cs
- FormsAuthenticationUser.cs
- RTLAwareMessageBox.cs
- SchemaElement.cs
- VolatileResourceManager.cs
- IntAverageAggregationOperator.cs
- TypeLibConverter.cs
- QueuePropertyVariants.cs
- ResizeGrip.cs
- SizeAnimationBase.cs
- RowVisual.cs
- AccessText.cs
- BrushMappingModeValidation.cs
- SingleStorage.cs
- WinFormsUtils.cs
- BuildDependencySet.cs
- CharEntityEncoderFallback.cs
- PrePrepareMethodAttribute.cs
- NumberSubstitution.cs
- SQLInt16Storage.cs
- ListViewItemSelectionChangedEvent.cs
- GiveFeedbackEvent.cs
- TrackingDataItemValue.cs
- EntityDataSourceEntitySetNameItem.cs