Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / Util / SymbolEqualComparer.cs / 1 / 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. // Copyright (c) Microsoft Corporation. All rights reserved.[To be supplied.] ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HtmlInputControl.cs
- ToolboxItemLoader.cs
- KeyGestureConverter.cs
- ConfigurationElementCollection.cs
- recordstatefactory.cs
- HttpRuntimeSection.cs
- XmlAttributes.cs
- IconHelper.cs
- EntityDataSourceValidationException.cs
- PackageDigitalSignature.cs
- OdbcException.cs
- FormsAuthenticationEventArgs.cs
- ListControl.cs
- SSmlParser.cs
- QueryOpcode.cs
- XLinq.cs
- ToolStripDropDownMenu.cs
- grammarelement.cs
- EndpointReference.cs
- CatalogPartChrome.cs
- ReachPrintTicketSerializer.cs
- UnaryExpressionHelper.cs
- DataDocumentXPathNavigator.cs
- BypassElement.cs
- ProgressBar.cs
- BufferedGraphics.cs
- UserControl.cs
- CheckBoxAutomationPeer.cs
- DoubleAnimation.cs
- TreeNodeStyle.cs
- IconBitmapDecoder.cs
- ImageEditor.cs
- UpdateTranslator.cs
- WsatProxy.cs
- SourceInterpreter.cs
- GAC.cs
- UpdateTranslator.cs
- QuaternionAnimationBase.cs
- WinEventQueueItem.cs
- DbSourceParameterCollection.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- SharedStream.cs
- PrinterSettings.cs
- FactoryRecord.cs
- DataPagerFieldCollection.cs
- BitmapSource.cs
- Sentence.cs
- WebBrowsableAttribute.cs
- HttpCookiesSection.cs
- ScopeCollection.cs
- XmlSchemaComplexType.cs
- UndirectedGraph.cs
- TreeIterators.cs
- Variant.cs
- StringDictionaryCodeDomSerializer.cs
- DataGridPagingPage.cs
- DynamicQueryableWrapper.cs
- PolyBezierSegment.cs
- OdbcConnectionString.cs
- LineGeometry.cs
- ShellProvider.cs
- GZipUtils.cs
- WebPartTransformerCollection.cs
- Timeline.cs
- SmtpCommands.cs
- SchemaInfo.cs
- URLMembershipCondition.cs
- Logging.cs
- ModelVisual3D.cs
- VectorAnimationBase.cs
- ToolTipAutomationPeer.cs
- NameNode.cs
- View.cs
- FontInfo.cs
- FormatterServices.cs
- TransactionTable.cs
- NativeWrapper.cs
- IDispatchConstantAttribute.cs
- BaseContextMenu.cs
- CompositeDuplexBindingElementImporter.cs
- TextSegment.cs
- PartManifestEntry.cs
- DetailsViewRowCollection.cs
- ExpressionPrefixAttribute.cs
- ToolStripSystemRenderer.cs
- InlinedAggregationOperatorEnumerator.cs
- ToolStripContentPanel.cs
- CallSiteHelpers.cs
- XmlWhitespace.cs
- BindingExpressionBase.cs
- DataFormats.cs
- RowCache.cs
- basenumberconverter.cs
- HGlobalSafeHandle.cs
- CommandSet.cs
- TreeNodeConverter.cs
- TextTreeTextBlock.cs
- RegexNode.cs
- WebPartZoneBase.cs
- ContentElement.cs