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
- XmlSchemaObjectTable.cs
- SpellerInterop.cs
- TemplateLookupAction.cs
- ConfigXmlReader.cs
- EtwTrace.cs
- WebBrowser.cs
- WebPartCancelEventArgs.cs
- ForceCopyBuildProvider.cs
- ToolStripGrip.cs
- DesignerOptions.cs
- SBCSCodePageEncoding.cs
- DynamicValidatorEventArgs.cs
- PropertyInformationCollection.cs
- ReferenceEqualityComparer.cs
- ProtocolsConfiguration.cs
- DoubleStorage.cs
- SQLInt16Storage.cs
- Lasso.cs
- ToolStripTemplateNode.cs
- ReadOnlyHierarchicalDataSource.cs
- OperatorExpressions.cs
- RoutedUICommand.cs
- DocumentScope.cs
- OracleCommandSet.cs
- Effect.cs
- HttpRequestCacheValidator.cs
- HttpValueCollection.cs
- EmptyReadOnlyDictionaryInternal.cs
- ToolStripGripRenderEventArgs.cs
- MiniParameterInfo.cs
- PagedDataSource.cs
- StorageBasedPackageProperties.cs
- LocalValueEnumerator.cs
- HMACRIPEMD160.cs
- BaseCodeDomTreeGenerator.cs
- EnterpriseServicesHelper.cs
- SettingsBase.cs
- FaultCode.cs
- DataGridAutoFormatDialog.cs
- DbDataSourceEnumerator.cs
- invalidudtexception.cs
- WebPartManagerInternals.cs
- DataGridViewLinkCell.cs
- MethodToken.cs
- TimeSpanValidatorAttribute.cs
- Point4D.cs
- WebBrowser.cs
- StylusOverProperty.cs
- DllNotFoundException.cs
- ListViewDeleteEventArgs.cs
- ObjectDataSource.cs
- OpCellTreeNode.cs
- Token.cs
- DetailsViewDeletedEventArgs.cs
- PageAction.cs
- WindowsListViewGroupSubsetLink.cs
- Environment.cs
- XamlToRtfWriter.cs
- SqlDataReader.cs
- StreamGeometry.cs
- SortDescriptionCollection.cs
- SplineKeyFrames.cs
- FixedSOMLineCollection.cs
- FrameworkContentElementAutomationPeer.cs
- RowUpdatedEventArgs.cs
- WebServicesDescriptionAttribute.cs
- FontUnit.cs
- UserControl.cs
- NoResizeHandleGlyph.cs
- QueryResponse.cs
- ContentPlaceHolder.cs
- ReliabilityContractAttribute.cs
- WebRequestModuleElementCollection.cs
- TcpTransportBindingElement.cs
- BitVector32.cs
- Point3DIndependentAnimationStorage.cs
- MeasureData.cs
- WindowsEditBox.cs
- ProvidersHelper.cs
- ReflectionUtil.cs
- Attachment.cs
- CheckBoxPopupAdapter.cs
- LOSFormatter.cs
- AuthenticationModuleElement.cs
- EventInfo.cs
- TdsParser.cs
- SubMenuStyleCollectionEditor.cs
- XamlDesignerSerializationManager.cs
- ValidationSummary.cs
- SizeKeyFrameCollection.cs
- InternalConfigSettingsFactory.cs
- SHA1.cs
- WaitHandleCannotBeOpenedException.cs
- EnumMember.cs
- Rfc2898DeriveBytes.cs
- SystemIPAddressInformation.cs
- PointCollection.cs
- Debugger.cs
- ChannelManager.cs
- QueryStringHandler.cs