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
- CustomAttributeFormatException.cs
- SqlBuffer.cs
- CollectionViewProxy.cs
- SoapSchemaImporter.cs
- SourceElementsCollection.cs
- Symbol.cs
- SizeAnimationClockResource.cs
- ValidationSettings.cs
- CallContext.cs
- CriticalFinalizerObject.cs
- HMACSHA1.cs
- XPathBinder.cs
- BStrWrapper.cs
- SiteMapNodeItemEventArgs.cs
- ComboBox.cs
- ModelUtilities.cs
- WebResponse.cs
- MultipleViewProviderWrapper.cs
- DataTableNewRowEvent.cs
- RowUpdatingEventArgs.cs
- Helper.cs
- ColorConvertedBitmap.cs
- DecimalStorage.cs
- OleDbParameterCollection.cs
- SecurityResources.cs
- XamlReaderHelper.cs
- IODescriptionAttribute.cs
- SecuritySessionSecurityTokenAuthenticator.cs
- SingleStorage.cs
- NamespaceTable.cs
- UdpChannelFactory.cs
- AccessKeyManager.cs
- InvalidComObjectException.cs
- FatalException.cs
- InlineCollection.cs
- DPAPIProtectedConfigurationProvider.cs
- TransactionFlowElement.cs
- EventRoute.cs
- templategroup.cs
- ValidatingReaderNodeData.cs
- BinaryObjectInfo.cs
- MemoryStream.cs
- FormatException.cs
- DownloadProgressEventArgs.cs
- TemplatePropertyEntry.cs
- PathGeometry.cs
- WizardPanelChangingEventArgs.cs
- ViewPort3D.cs
- RSAOAEPKeyExchangeFormatter.cs
- IndexedGlyphRun.cs
- Converter.cs
- Delay.cs
- GlyphCache.cs
- GestureRecognitionResult.cs
- DefaultProxySection.cs
- SendSecurityHeaderElementContainer.cs
- SHA512Managed.cs
- sqlpipe.cs
- FileSystemInfo.cs
- WindowVisualStateTracker.cs
- SystemIPv6InterfaceProperties.cs
- coordinatorfactory.cs
- ChainOfResponsibility.cs
- ConfigXmlComment.cs
- TranslateTransform3D.cs
- _BaseOverlappedAsyncResult.cs
- ProfileService.cs
- X509ScopedServiceCertificateElement.cs
- PropertyDescriptorComparer.cs
- SqlProcedureAttribute.cs
- TransportBindingElement.cs
- OdbcInfoMessageEvent.cs
- _NetworkingPerfCounters.cs
- SqlDataSourceFilteringEventArgs.cs
- ThemeDirectoryCompiler.cs
- Pens.cs
- AlternationConverter.cs
- StaticDataManager.cs
- ActionItem.cs
- RoutingConfiguration.cs
- TableLayoutPanelCellPosition.cs
- COM2ColorConverter.cs
- TemplateControl.cs
- UIElementHelper.cs
- ZipIOModeEnforcingStream.cs
- WindowsSecurityToken.cs
- XPathExpr.cs
- CultureInfoConverter.cs
- TimeSpanValidator.cs
- SiteOfOriginContainer.cs
- Opcode.cs
- XmlSchemaDatatype.cs
- DropShadowEffect.cs
- CodeTypeReferenceExpression.cs
- DataPagerFieldCollection.cs
- ToolStripContentPanel.cs
- IfAction.cs
- ContractMapping.cs
- WaitForChangedResult.cs
- EdmError.cs