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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MimeTextImporter.cs
- DataServiceConfiguration.cs
- GuidTagList.cs
- FlowLayout.cs
- DrawTreeNodeEventArgs.cs
- ListDictionary.cs
- XsltSettings.cs
- WorkItem.cs
- HandlerFactoryCache.cs
- DescendantOverDescendantQuery.cs
- MexServiceChannelBuilder.cs
- DocumentPageHost.cs
- GridViewHeaderRowPresenter.cs
- UtilityExtension.cs
- CommandDesigner.cs
- Material.cs
- HashRepartitionEnumerator.cs
- AttributeQuery.cs
- XPathNodeList.cs
- HotCommands.cs
- WebEvents.cs
- Win32SafeHandles.cs
- ProgressBarRenderer.cs
- IfJoinedCondition.cs
- precedingquery.cs
- TextSearch.cs
- MtomMessageEncodingElement.cs
- TraceHandler.cs
- ImportCatalogPart.cs
- XsdDateTime.cs
- BatchWriter.cs
- RuleElement.cs
- Primitive.cs
- CodeDelegateCreateExpression.cs
- DayRenderEvent.cs
- XmlSchemaSequence.cs
- RuleElement.cs
- GridView.cs
- BaseServiceProvider.cs
- StringUtil.cs
- Constant.cs
- WebServiceReceiveDesigner.cs
- SessionStateUtil.cs
- WeakHashtable.cs
- ClassHandlersStore.cs
- VideoDrawing.cs
- PipeStream.cs
- OdbcCommand.cs
- ListParagraph.cs
- ElementUtil.cs
- ArcSegment.cs
- UmAlQuraCalendar.cs
- WebEncodingValidatorAttribute.cs
- RawStylusInputCustomDataList.cs
- BufferedGraphicsManager.cs
- WebPartDisplayModeCancelEventArgs.cs
- ToolStripDropDown.cs
- HtmlMobileTextWriter.cs
- AssemblyBuilderData.cs
- RoleServiceManager.cs
- AccessViolationException.cs
- RepeaterCommandEventArgs.cs
- Package.cs
- TrustExchangeException.cs
- Quad.cs
- SmiConnection.cs
- ByteKeyFrameCollection.cs
- HttpRequest.cs
- SystemKeyConverter.cs
- MenuItem.cs
- SafeEventLogWriteHandle.cs
- SrgsGrammarCompiler.cs
- ClassData.cs
- DeferredTextReference.cs
- LogEntryHeaderDeserializer.cs
- BitArray.cs
- DiagnosticTrace.cs
- WebServiceTypeData.cs
- StylusDownEventArgs.cs
- BamlMapTable.cs
- FontFamily.cs
- SignatureDescription.cs
- SemanticAnalyzer.cs
- XamlSerializationHelper.cs
- WebPartCatalogAddVerb.cs
- DragEventArgs.cs
- Permission.cs
- FastPropertyAccessor.cs
- LinearGradientBrush.cs
- StorageComplexPropertyMapping.cs
- ToolZone.cs
- ByteStreamMessageEncoderFactory.cs
- ProbeDuplex11AsyncResult.cs
- ToolStripDropDownMenu.cs
- FilterElement.cs
- DetailsViewCommandEventArgs.cs
- ThreadLocal.cs
- XmlIlGenerator.cs
- DataColumnMappingCollection.cs
- OrderPreservingSpoolingTask.cs