Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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. //------------------------------------------------------------------------------ //[To be supplied.] ///// 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.[To be supplied.] ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Rect3D.cs
- EditableLabelControl.cs
- RoleManagerModule.cs
- ActivitiesCollection.cs
- MemberBinding.cs
- SequentialActivityDesigner.cs
- webproxy.cs
- FrameworkElement.cs
- CommandHelper.cs
- NamedPipeTransportSecurity.cs
- HtmlTernaryTree.cs
- MenuScrollingVisibilityConverter.cs
- DesignSurfaceCollection.cs
- QilCloneVisitor.cs
- SchemaTypeEmitter.cs
- BaseCodeDomTreeGenerator.cs
- System.Data_BID.cs
- SessionStateContainer.cs
- ButtonFlatAdapter.cs
- DataGridHeaderBorder.cs
- JumpTask.cs
- StreamWithDictionary.cs
- followingsibling.cs
- ConsumerConnectionPoint.cs
- X509Certificate.cs
- KeyInterop.cs
- TextSyndicationContentKindHelper.cs
- ModelUIElement3D.cs
- SynchronizationContextHelper.cs
- ReferentialConstraint.cs
- RepeatInfo.cs
- UnsafeNativeMethodsTablet.cs
- BufferedGraphics.cs
- PageAsyncTaskManager.cs
- UserControlFileEditor.cs
- StreamHelper.cs
- HitTestWithPointDrawingContextWalker.cs
- TransportContext.cs
- XmlC14NWriter.cs
- SwitchAttribute.cs
- Propagator.cs
- BinaryFormatter.cs
- CodeCatchClause.cs
- EntityDataSourceContainerNameConverter.cs
- XmlBoundElement.cs
- RuntimeComponentFilter.cs
- DocumentPage.cs
- Condition.cs
- PropertyStore.cs
- SplineQuaternionKeyFrame.cs
- CustomCredentialPolicy.cs
- Statements.cs
- PointAnimationClockResource.cs
- ViewManager.cs
- LabelAutomationPeer.cs
- MtomMessageEncodingElement.cs
- BufferCache.cs
- SqlNotificationRequest.cs
- CodeSubDirectoriesCollection.cs
- FixedDocumentPaginator.cs
- ExceptionHandlersDesigner.cs
- StaticSiteMapProvider.cs
- StrokeCollection.cs
- MenuItemStyleCollection.cs
- WindowAutomationPeer.cs
- SortKey.cs
- BinaryUtilClasses.cs
- DataStreams.cs
- RegistrySecurity.cs
- WindowsListViewGroupSubsetLink.cs
- Debug.cs
- FrameworkElementAutomationPeer.cs
- _FtpDataStream.cs
- ListViewItemSelectionChangedEvent.cs
- Constants.cs
- XmlQueryRuntime.cs
- DataGridViewRowsAddedEventArgs.cs
- TriState.cs
- DynamicPropertyReader.cs
- XmlnsCompatibleWithAttribute.cs
- ToolStripSeparatorRenderEventArgs.cs
- SmiMetaDataProperty.cs
- GeneralTransformGroup.cs
- TextTreeInsertElementUndoUnit.cs
- EdgeModeValidation.cs
- XPathConvert.cs
- ObjectDataSource.cs
- SessionParameter.cs
- ControlType.cs
- SecurityManager.cs
- Listbox.cs
- CodeConditionStatement.cs
- XmlSchemaObjectCollection.cs
- HttpModuleAction.cs
- TextComposition.cs
- CompositeScriptReference.cs
- AspNetHostingPermission.cs
- SystemDiagnosticsSection.cs
- ColumnMap.cs
- IApplicationTrustManager.cs