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
- safelink.cs
- InvalidProgramException.cs
- RowsCopiedEventArgs.cs
- FilterElement.cs
- DbConnectionInternal.cs
- OptimizerPatterns.cs
- ConversionContext.cs
- PathFigure.cs
- PasswordBox.cs
- XPathNodeInfoAtom.cs
- PublisherIdentityPermission.cs
- OpenFileDialog.cs
- FontStretchConverter.cs
- Executor.cs
- DockPanel.cs
- SystemDiagnosticsSection.cs
- DefaultProfileManager.cs
- ToolStripDropDownItemDesigner.cs
- Window.cs
- SqlComparer.cs
- EntityCommandCompilationException.cs
- OracleCommandSet.cs
- RoutedUICommand.cs
- ConfigXmlSignificantWhitespace.cs
- GridItemPatternIdentifiers.cs
- ResourceReader.cs
- WaitHandle.cs
- DrawingContext.cs
- BrowserCapabilitiesFactory35.cs
- DBSchemaRow.cs
- AssemblyBuilderData.cs
- LabelEditEvent.cs
- WindowsAuthenticationModule.cs
- ProfessionalColorTable.cs
- RSAPKCS1SignatureFormatter.cs
- FontCacheLogic.cs
- DataBoundLiteralControl.cs
- ScopedMessagePartSpecification.cs
- BaseComponentEditor.cs
- MetaChildrenColumn.cs
- GridEntryCollection.cs
- InheritedPropertyDescriptor.cs
- RuntimeHandles.cs
- ReadOnlyDataSource.cs
- PriorityQueue.cs
- odbcmetadatacollectionnames.cs
- StateManagedCollection.cs
- DisplayMemberTemplateSelector.cs
- TransactionScope.cs
- Rights.cs
- XmlSchemaImport.cs
- BuildProviderAppliesToAttribute.cs
- EdmValidator.cs
- MD5.cs
- DisplayNameAttribute.cs
- WebWorkflowRole.cs
- BitmapVisualManager.cs
- ITextView.cs
- WSHttpTransportSecurityElement.cs
- X509Extension.cs
- ExpressionBuilder.cs
- Focus.cs
- TimeSpanValidator.cs
- ActiveXHelper.cs
- DataTemplateKey.cs
- Set.cs
- TemplatedMailWebEventProvider.cs
- ShapingEngine.cs
- TextElementEditingBehaviorAttribute.cs
- GridViewRowEventArgs.cs
- XmlHelper.cs
- DtrList.cs
- ReliableSessionElement.cs
- DataProviderNameConverter.cs
- WorkflowInstanceExtensionCollection.cs
- OwnerDrawPropertyBag.cs
- WebBrowserPermission.cs
- HoistedLocals.cs
- Decoder.cs
- X509SecurityTokenProvider.cs
- EncoderParameters.cs
- SupportingTokenBindingElement.cs
- HandlerWithFactory.cs
- ListViewDeleteEventArgs.cs
- GiveFeedbackEventArgs.cs
- DbDataReader.cs
- DataSourceProvider.cs
- SolidColorBrush.cs
- BitmapEffectGroup.cs
- Renderer.cs
- BufferedWebEventProvider.cs
- TableCell.cs
- RequestSecurityTokenSerializer.cs
- ContextActivityUtils.cs
- CodeNamespace.cs
- PointConverter.cs
- safesecurityhelperavalon.cs
- ClientOperationFormatterProvider.cs
- MouseActionValueSerializer.cs
- ObjectListGeneralPage.cs