Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Util / SymbolEqualComparer.cs / 1305376 / SymbolEqualComparer.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Util { using System.Collections; using System.Globalization; ////// internal class SymbolEqualComparer: IComparer { ////// For internal use only. This implements a comparison that only /// checks for equalilty, so this should only be used in un-sorted data /// structures like Hastable and ListDictionary. This is a little faster /// than using CaseInsensitiveComparer because it does a strict character by /// character equality chech rather than a sorted comparison. /// ////// internal static readonly IComparer Default = new SymbolEqualComparer(); internal SymbolEqualComparer() { } int IComparer.Compare(object keyLeft, object keyRight) { string sLeft = keyLeft as string; string sRight = keyRight as string; if (sLeft == null) { throw new ArgumentNullException("keyLeft"); } if (sRight == null) { throw new ArgumentNullException("keyRight"); } int lLeft = sLeft.Length; int lRight = sRight.Length; if (lLeft != lRight) { return 1; } for (int i = 0; i < lLeft; i++) { char charLeft = sLeft[i]; char charRight = sRight[i]; if (charLeft == charRight) { continue; } UnicodeCategory catLeft = Char.GetUnicodeCategory(charLeft); UnicodeCategory catRight = Char.GetUnicodeCategory(charRight); if (catLeft == UnicodeCategory.UppercaseLetter && catRight == UnicodeCategory.LowercaseLetter) { if (Char.ToLower(charLeft, CultureInfo.InvariantCulture) == charRight) { continue; } } else if (catRight == UnicodeCategory.UppercaseLetter && catLeft == UnicodeCategory.LowercaseLetter){ if (Char.ToLower(charRight, CultureInfo.InvariantCulture) == charLeft) { continue; } } return 1; } return 0; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.[To be supplied.] ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PageCodeDomTreeGenerator.cs
- MetabaseServerConfig.cs
- FontFaceLayoutInfo.cs
- CultureInfo.cs
- TextTreeUndo.cs
- AssemblyResourceLoader.cs
- TokenizerHelper.cs
- StylusPointPropertyUnit.cs
- ConfigXmlCDataSection.cs
- LoadRetryAsyncResult.cs
- FamilyMapCollection.cs
- HostnameComparisonMode.cs
- RuleSetDialog.Designer.cs
- InteropAutomationProvider.cs
- NavigationProperty.cs
- ExceptionHandler.cs
- CriticalHandle.cs
- ActivityDelegate.cs
- TcpWorkerProcess.cs
- MaterialCollection.cs
- _ChunkParse.cs
- SafeSecurityHandles.cs
- ToolStripItemTextRenderEventArgs.cs
- AuditLog.cs
- FolderBrowserDialog.cs
- OracleString.cs
- WorkflowMarkupSerializationProvider.cs
- CodeAttachEventStatement.cs
- CacheAxisQuery.cs
- HitTestWithGeometryDrawingContextWalker.cs
- TreeNodeStyle.cs
- MeshGeometry3D.cs
- RegexStringValidatorAttribute.cs
- AssemblyInfo.cs
- InheritanceRules.cs
- MimeFormReflector.cs
- SafeThemeHandle.cs
- ControlIdConverter.cs
- WebConfigurationFileMap.cs
- ErrorWebPart.cs
- serverconfig.cs
- XpsPackagingPolicy.cs
- RadioButton.cs
- DocumentPageTextView.cs
- ToolboxItemCollection.cs
- Animatable.cs
- FilterUserControlBase.cs
- InputChannelAcceptor.cs
- HtmlEncodedRawTextWriter.cs
- EntityDataSourceContextDisposingEventArgs.cs
- ContentPlaceHolder.cs
- XPathItem.cs
- HtmlElementErrorEventArgs.cs
- ProxyWebPartManager.cs
- XmlWhitespace.cs
- WinEventQueueItem.cs
- ScriptReferenceBase.cs
- BaseHashHelper.cs
- ServiceOperation.cs
- PointHitTestParameters.cs
- LightweightEntityWrapper.cs
- XPathException.cs
- FixedPosition.cs
- WinInetCache.cs
- EmptyReadOnlyDictionaryInternal.cs
- Vector3DIndependentAnimationStorage.cs
- XPathQilFactory.cs
- LayoutManager.cs
- EventDescriptorCollection.cs
- ClientSettingsProvider.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- AuthenticatingEventArgs.cs
- ValueProviderWrapper.cs
- OverloadGroupAttribute.cs
- ObfuscateAssemblyAttribute.cs
- _WebProxyDataBuilder.cs
- FederatedMessageSecurityOverHttp.cs
- AllMembershipCondition.cs
- XmlNamespaceManager.cs
- SecurityElement.cs
- CodeConstructor.cs
- InstancePersistenceEvent.cs
- DbParameterCollection.cs
- StringBuilder.cs
- ListViewInsertionMark.cs
- IdlingCommunicationPool.cs
- Comparer.cs
- RelationshipWrapper.cs
- CollectionEditorDialog.cs
- SqlConnectionString.cs
- ListControl.cs
- Transform.cs
- XmlProcessingInstruction.cs
- DebugViewWriter.cs
- ToolTipAutomationPeer.cs
- AppliedDeviceFiltersEditor.cs
- AsyncCompletedEventArgs.cs
- BooleanStorage.cs
- DataObjectCopyingEventArgs.cs
- HostingMessageProperty.cs