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
- SqlAliaser.cs
- MetadataArtifactLoaderFile.cs
- MetabaseServerConfig.cs
- ObfuscateAssemblyAttribute.cs
- PrintDialog.cs
- RijndaelManaged.cs
- storepermission.cs
- webeventbuffer.cs
- ManualResetEvent.cs
- CodeTypeDeclarationCollection.cs
- NameValuePermission.cs
- FixedBufferAttribute.cs
- SqlTriggerContext.cs
- CallInfo.cs
- _Win32.cs
- SafeSecurityHelper.cs
- Image.cs
- XmlValidatingReader.cs
- EntityWrapperFactory.cs
- StrokeNodeOperations.cs
- WindowsListViewSubItem.cs
- MultipleViewPattern.cs
- HttpApplicationFactory.cs
- MatrixTransform.cs
- IfAction.cs
- CodeIdentifier.cs
- ExpanderAutomationPeer.cs
- CodeAttributeDeclarationCollection.cs
- invalidudtexception.cs
- RetrieveVirtualItemEventArgs.cs
- GestureRecognizer.cs
- MarkupWriter.cs
- tooltip.cs
- FormViewUpdateEventArgs.cs
- ConfigXmlElement.cs
- SizeF.cs
- AttributeUsageAttribute.cs
- Char.cs
- AddInToken.cs
- FloaterParaClient.cs
- IIS7UserPrincipal.cs
- ArraySortHelper.cs
- PingReply.cs
- ThreadExceptionDialog.cs
- ImageMapEventArgs.cs
- SupportingTokenSpecification.cs
- RemoteWebConfigurationHostStream.cs
- Variant.cs
- MessageEncoderFactory.cs
- Internal.cs
- PlaceHolder.cs
- InternalSafeNativeMethods.cs
- xsdvalidator.cs
- TypeForwardedToAttribute.cs
- CroppedBitmap.cs
- SymLanguageType.cs
- TransportConfigurationTypeElement.cs
- PerfCounterSection.cs
- ImageField.cs
- DynamicPropertyHolder.cs
- GeneralTransform3DGroup.cs
- TypeDependencyAttribute.cs
- ObjectNotFoundException.cs
- HashRepartitionStream.cs
- HtmlLabelAdapter.cs
- XmlBinaryReader.cs
- XPathBuilder.cs
- AcceptorSessionSymmetricTransportSecurityProtocol.cs
- ContainerParaClient.cs
- CompiledQuery.cs
- ObjectDataSourceDisposingEventArgs.cs
- TabControl.cs
- TypeValidationEventArgs.cs
- XPathQilFactory.cs
- GridToolTip.cs
- TraceLog.cs
- FileLoadException.cs
- RadioButtonAutomationPeer.cs
- TransactedBatchingElement.cs
- AuthenticationModuleElementCollection.cs
- FormsAuthenticationModule.cs
- AtomContentProperty.cs
- CurrentTimeZone.cs
- GatewayIPAddressInformationCollection.cs
- Preprocessor.cs
- PolicyValidator.cs
- StringPropertyBuilder.cs
- XmlSchemaAnnotation.cs
- RelationalExpressions.cs
- BezierSegment.cs
- BamlMapTable.cs
- TextPointerBase.cs
- ManualResetEventSlim.cs
- Compilation.cs
- NamedElement.cs
- DocumentPaginator.cs
- SignatureGenerator.cs
- AsyncOperation.cs
- MessageLogTraceRecord.cs
- SelectionEditingBehavior.cs