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
- UnitySerializationHolder.cs
- ClrPerspective.cs
- SessionState.cs
- SystemInfo.cs
- HostElement.cs
- ClientUrlResolverWrapper.cs
- TextShapeableCharacters.cs
- NonParentingControl.cs
- JsonDeserializer.cs
- WindowsToolbarItemAsMenuItem.cs
- SqlTrackingWorkflowInstance.cs
- DataGridViewUtilities.cs
- StateWorkerRequest.cs
- StringValidator.cs
- RouteItem.cs
- DataException.cs
- Executor.cs
- QueryPageSettingsEventArgs.cs
- DrawingContext.cs
- ClonableStack.cs
- HandleCollector.cs
- WrapPanel.cs
- ExtentJoinTreeNode.cs
- RightsManagementUser.cs
- XmlBinaryReader.cs
- contentDescriptor.cs
- ObjRef.cs
- ExtractCollection.cs
- BaseResourcesBuildProvider.cs
- BindingNavigator.cs
- RefreshEventArgs.cs
- Int16AnimationUsingKeyFrames.cs
- UnSafeCharBuffer.cs
- DynamicQueryableWrapper.cs
- TextEffectResolver.cs
- MissingMethodException.cs
- CodeNamespace.cs
- RecognitionResult.cs
- PeerInvitationResponse.cs
- WMIGenerator.cs
- DecoderFallbackWithFailureFlag.cs
- oledbmetadatacolumnnames.cs
- BindingExpressionBase.cs
- MulticastDelegate.cs
- SweepDirectionValidation.cs
- Int16Converter.cs
- ComponentResourceKey.cs
- EdmComplexTypeAttribute.cs
- CellConstant.cs
- TraceListener.cs
- TextReader.cs
- assertwrapper.cs
- PathParser.cs
- MonitoringDescriptionAttribute.cs
- QilXmlReader.cs
- BinaryWriter.cs
- JavaScriptSerializer.cs
- _ListenerRequestStream.cs
- XmlIgnoreAttribute.cs
- SegmentInfo.cs
- VScrollBar.cs
- RegexTree.cs
- WebControlParameterProxy.cs
- DrawItemEvent.cs
- StatusBarPanelClickEvent.cs
- ObjectItemCollection.cs
- MarginsConverter.cs
- TextBoxRenderer.cs
- IndicCharClassifier.cs
- DataGridViewImageColumn.cs
- LifetimeServices.cs
- FontInfo.cs
- XamlDesignerSerializationManager.cs
- CommandManager.cs
- TextCollapsingProperties.cs
- HtmlGenericControl.cs
- CollectionChangeEventArgs.cs
- PreviewPrintController.cs
- ContextMenu.cs
- JournalNavigationScope.cs
- AxHost.cs
- ManagedIStream.cs
- BitmapEffectInput.cs
- WebPartCatalogAddVerb.cs
- ManagedCodeMarkers.cs
- SimpleRecyclingCache.cs
- RepeaterItemCollection.cs
- DataServiceCollectionOfT.cs
- WebPartConnectionsConfigureVerb.cs
- MultiTrigger.cs
- RegexTree.cs
- DBSqlParserTable.cs
- XmlSchemaDocumentation.cs
- ControlLocalizer.cs
- WebScriptEnablingElement.cs
- DbDataSourceEnumerator.cs
- ClientCultureInfo.cs
- EventBuilder.cs
- TableLayoutRowStyleCollection.cs
- messageonlyhwndwrapper.cs