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
- SessionState.cs
- Evidence.cs
- InternalPolicyElement.cs
- FloaterParaClient.cs
- AbstractExpressions.cs
- EventLogPermissionHolder.cs
- DbProviderFactories.cs
- Random.cs
- ComMethodElementCollection.cs
- NativeMethods.cs
- MediaTimeline.cs
- GridViewPageEventArgs.cs
- MonthChangedEventArgs.cs
- ExpressionBuilderCollection.cs
- UIElementCollection.cs
- DoubleLinkListEnumerator.cs
- BufferModesCollection.cs
- MarkedHighlightComponent.cs
- ToolBarButton.cs
- UnitySerializationHolder.cs
- ElementFactory.cs
- UnsafeNativeMethods.cs
- linebase.cs
- ScriptComponentDescriptor.cs
- JapaneseLunisolarCalendar.cs
- WeakEventManager.cs
- WmlListAdapter.cs
- ZoneIdentityPermission.cs
- IndependentAnimationStorage.cs
- XmlDataSourceNodeDescriptor.cs
- MasterPageCodeDomTreeGenerator.cs
- Helper.cs
- DbDataAdapter.cs
- PrimarySelectionAdorner.cs
- ExpressionBindings.cs
- OdbcPermission.cs
- XmlSubtreeReader.cs
- SchemaElement.cs
- MetadataUtilsSmi.cs
- NotSupportedException.cs
- ScriptingScriptResourceHandlerSection.cs
- DiscoveryRequestHandler.cs
- FileDetails.cs
- RootAction.cs
- SkipStoryboardToFill.cs
- DataObject.cs
- DataKeyCollection.cs
- HTMLTagNameToTypeMapper.cs
- KeyTimeConverter.cs
- UnmanagedMemoryStreamWrapper.cs
- FormViewInsertedEventArgs.cs
- CDSsyncETWBCLProvider.cs
- SafeNativeMethods.cs
- UDPClient.cs
- CharStorage.cs
- TextWriterTraceListener.cs
- LexicalChunk.cs
- PerfCounterSection.cs
- ApplicationContext.cs
- SqlBooleanMismatchVisitor.cs
- ProgressBarRenderer.cs
- BookmarkEventArgs.cs
- QueryConverter.cs
- TextTreeUndoUnit.cs
- PersonalizablePropertyEntry.cs
- ResXBuildProvider.cs
- CodeAttributeArgument.cs
- SqlBulkCopyColumnMappingCollection.cs
- TransformValueSerializer.cs
- EntityClientCacheEntry.cs
- PrintPreviewGraphics.cs
- PersonalizationProviderCollection.cs
- EntityViewGenerator.cs
- WasAdminWrapper.cs
- VectorCollectionConverter.cs
- StylusLogic.cs
- BindToObject.cs
- DataGridViewRowConverter.cs
- SvcMapFileLoader.cs
- MSAAWinEventWrap.cs
- UmAlQuraCalendar.cs
- ObjectKeyFrameCollection.cs
- _OverlappedAsyncResult.cs
- srgsitem.cs
- MetabaseServerConfig.cs
- UnescapedXmlDiagnosticData.cs
- ObjectAssociationEndMapping.cs
- SiteMapDataSource.cs
- DmlSqlGenerator.cs
- WindowsGrip.cs
- MSAAWinEventWrap.cs
- DelegateBodyWriter.cs
- InvalidProgramException.cs
- XmlSchemaExternal.cs
- SqlDataSourceAdvancedOptionsForm.cs
- FieldAccessException.cs
- Msmq4SubqueuePoisonHandler.cs
- ImageFormat.cs
- ZipIOExtraFieldElement.cs
- Brushes.cs