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
- XmlSchemaSet.cs
- MeasureItemEvent.cs
- MethodRental.cs
- CapabilitiesUse.cs
- CodeRegionDirective.cs
- RepeatInfo.cs
- RichTextBoxConstants.cs
- CodeConditionStatement.cs
- DesignerRegion.cs
- PhonemeConverter.cs
- CultureMapper.cs
- ProcessRequestArgs.cs
- MatrixUtil.cs
- DataColumn.cs
- wgx_commands.cs
- BamlRecordHelper.cs
- ObjectViewListener.cs
- InertiaRotationBehavior.cs
- GraphicsContainer.cs
- ServiceObjectContainer.cs
- GreaterThan.cs
- RequestDescription.cs
- SmiEventSink_Default.cs
- DefaultAuthorizationContext.cs
- TaskFormBase.cs
- InvalidOleVariantTypeException.cs
- Crypto.cs
- ImageCreator.cs
- SvcMapFileLoader.cs
- FixedTextView.cs
- Action.cs
- XmlSchemaCollection.cs
- ResXFileRef.cs
- DrawTreeNodeEventArgs.cs
- ResourceDisplayNameAttribute.cs
- SmiEventSink_DeferedProcessing.cs
- AttributedMetaModel.cs
- StringHandle.cs
- OpenTypeLayout.cs
- DataControlButton.cs
- AsyncOperation.cs
- SecurityChannelListener.cs
- IgnoreFlushAndCloseStream.cs
- OdbcInfoMessageEvent.cs
- VirtualDirectoryMappingCollection.cs
- TTSVoice.cs
- NodeInfo.cs
- EnumConverter.cs
- TextDecoration.cs
- MenuItemBinding.cs
- XPathScanner.cs
- PerformanceCounterLib.cs
- Journal.cs
- WinInetCache.cs
- SmiContext.cs
- DataGridViewHeaderCell.cs
- VSWCFServiceContractGenerator.cs
- LogSwitch.cs
- SectionUpdates.cs
- WorkflowOperationFault.cs
- Lease.cs
- NetTcpSecurityElement.cs
- AssemblyBuilder.cs
- FormsAuthenticationConfiguration.cs
- ConcurrencyMode.cs
- COAUTHINFO.cs
- EndpointConfigContainer.cs
- TextTreeTextBlock.cs
- TagMapInfo.cs
- TableRowGroup.cs
- RuleSettings.cs
- Item.cs
- PersonalizationDictionary.cs
- TraceEventCache.cs
- ScriptComponentDescriptor.cs
- ChangeBlockUndoRecord.cs
- MulticastOption.cs
- TypeConverterHelper.cs
- InvokeHandlers.cs
- SecurityMode.cs
- AssertFilter.cs
- XmlSchemaInferenceException.cs
- SystemThemeKey.cs
- ServicePrincipalNameElement.cs
- MediaPlayerState.cs
- WsrmMessageInfo.cs
- PathSegment.cs
- ToolStripItemClickedEventArgs.cs
- DrawingVisualDrawingContext.cs
- Int64AnimationUsingKeyFrames.cs
- DataBindingHandlerAttribute.cs
- MethodBuilder.cs
- ArgumentOutOfRangeException.cs
- AjaxFrameworkAssemblyAttribute.cs
- TypeForwardedToAttribute.cs
- Win32Native.cs
- DbConnectionFactory.cs
- DataGridViewMethods.cs
- SerializationException.cs
- ObjectStateFormatter.cs