Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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; } } }[To be supplied.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MessageDecoder.cs
- TemplateComponentConnector.cs
- TableRowCollection.cs
- AmbientProperties.cs
- DesignerCommandSet.cs
- JsonQNameDataContract.cs
- DataDocumentXPathNavigator.cs
- RuleInfoComparer.cs
- UnhandledExceptionEventArgs.cs
- ProxyWebPartManager.cs
- SystemIPInterfaceProperties.cs
- NameValueCollection.cs
- TypeExtensionSerializer.cs
- CommandLibraryHelper.cs
- BlockExpression.cs
- DynamicRenderer.cs
- MarshalByRefObject.cs
- BoundColumn.cs
- ResourceLoader.cs
- MediaContextNotificationWindow.cs
- Code.cs
- HttpListenerRequest.cs
- CodeSubDirectoriesCollection.cs
- SkipQueryOptionExpression.cs
- CriticalExceptions.cs
- SettingsBindableAttribute.cs
- RegexMatch.cs
- Attributes.cs
- TemplateKeyConverter.cs
- DbConnectionInternal.cs
- UnsafeNativeMethodsPenimc.cs
- PersonalizableTypeEntry.cs
- TransformBlockRequest.cs
- GeneratedCodeAttribute.cs
- XmlLanguageConverter.cs
- TypeInitializationException.cs
- FixedTextContainer.cs
- MulticastIPAddressInformationCollection.cs
- TripleDES.cs
- CachedTypeface.cs
- ExpressionSelection.cs
- SoapSchemaImporter.cs
- CorrelationManager.cs
- ActivityScheduledQuery.cs
- DBPropSet.cs
- PrintingPermissionAttribute.cs
- FileIOPermission.cs
- _DigestClient.cs
- XsltQilFactory.cs
- DefaultShape.cs
- FormatterConverter.cs
- SessionSwitchEventArgs.cs
- ApplicationDirectory.cs
- DynamicDataRouteHandler.cs
- ListViewTableRow.cs
- ColorKeyFrameCollection.cs
- httpapplicationstate.cs
- CultureInfoConverter.cs
- SecUtil.cs
- HTMLTagNameToTypeMapper.cs
- BoundColumn.cs
- StandardBindingReliableSessionElement.cs
- Latin1Encoding.cs
- VisualBrush.cs
- WrapPanel.cs
- XPathParser.cs
- SHA512.cs
- DataServiceClientException.cs
- JsonQueryStringConverter.cs
- ConnectionOrientedTransportBindingElement.cs
- XmlArrayAttribute.cs
- ColumnMapCopier.cs
- Crypto.cs
- AccessDataSource.cs
- CacheDict.cs
- ForeignConstraint.cs
- CalendarDayButton.cs
- RawKeyboardInputReport.cs
- OneWayBindingElement.cs
- CodeNamespaceImport.cs
- XmlObjectSerializerContext.cs
- CounterSampleCalculator.cs
- OdbcException.cs
- ReceiveMessageAndVerifySecurityAsyncResultBase.cs
- CaseInsensitiveHashCodeProvider.cs
- MiniAssembly.cs
- DropAnimation.xaml.cs
- DetailsViewCommandEventArgs.cs
- Bitmap.cs
- Perspective.cs
- HelpProvider.cs
- DataContractSerializerFaultFormatter.cs
- ParameterCollection.cs
- EntryPointNotFoundException.cs
- HttpWebRequestElement.cs
- NavigationWindow.cs
- SqlGatherConsumedAliases.cs
- CalendarAutoFormat.cs
- HyperLinkField.cs
- XmlNode.cs