Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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. // Copyright (c) Microsoft Corporation. All rights reserved.[To be supplied.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ChameleonKey.cs
- MultiSelectRootGridEntry.cs
- RegexBoyerMoore.cs
- DataTablePropertyDescriptor.cs
- WebServiceData.cs
- WebPartAuthorizationEventArgs.cs
- LocatorManager.cs
- HttpListenerRequest.cs
- Utils.cs
- HtmlInputRadioButton.cs
- EmbeddedMailObject.cs
- ReaderOutput.cs
- Point3DAnimationUsingKeyFrames.cs
- ReadOnlyObservableCollection.cs
- ButtonFieldBase.cs
- JoinTreeSlot.cs
- RectAnimationClockResource.cs
- RowUpdatingEventArgs.cs
- UnionExpr.cs
- ArrangedElement.cs
- PathFigureCollectionValueSerializer.cs
- EdmFunctions.cs
- XmlSchemaFacet.cs
- OdbcEnvironment.cs
- AbandonedMutexException.cs
- SR.cs
- CatalogPartCollection.cs
- RijndaelManaged.cs
- GroupDescription.cs
- TextContainerHelper.cs
- PrintPageEvent.cs
- BaseComponentEditor.cs
- DataGridTable.cs
- ProcessRequestAsyncResult.cs
- DataGridViewCellStyleConverter.cs
- FontSource.cs
- CodeChecksumPragma.cs
- BinaryConverter.cs
- HttpDictionary.cs
- SafeViewOfFileHandle.cs
- UntypedNullExpression.cs
- MenuBase.cs
- AuthenticationModulesSection.cs
- SectionVisual.cs
- TypeExtensions.cs
- CollectionViewProxy.cs
- BitmapScalingModeValidation.cs
- PathGeometry.cs
- CodeGen.cs
- SecurityRequiresReviewAttribute.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- SqlWebEventProvider.cs
- WmpBitmapEncoder.cs
- SafeNativeMethodsCLR.cs
- __TransparentProxy.cs
- FontStyles.cs
- NativeMethods.cs
- MexBindingBindingCollectionElement.cs
- Annotation.cs
- SuppressMergeCheckAttribute.cs
- PreloadedPackages.cs
- COSERVERINFO.cs
- Merger.cs
- FrameworkElementAutomationPeer.cs
- GridViewRowEventArgs.cs
- FunctionCommandText.cs
- BooleanToVisibilityConverter.cs
- DataReaderContainer.cs
- CompModSwitches.cs
- MarshalDirectiveException.cs
- SchemaDeclBase.cs
- StringDictionary.cs
- WebPartUserCapability.cs
- CapiNative.cs
- MarshalByRefObject.cs
- TabPage.cs
- TemplatedAdorner.cs
- CheckoutException.cs
- DataProtection.cs
- XmlSchemaInclude.cs
- CreateCardRequest.cs
- SystemKeyConverter.cs
- ParamArrayAttribute.cs
- ControlBuilderAttribute.cs
- EntityTypeEmitter.cs
- FieldNameLookup.cs
- EntityModelSchemaGenerator.cs
- XmlDownloadManager.cs
- ComponentDispatcher.cs
- HandlerBase.cs
- BuildManager.cs
- HashHelper.cs
- CancelEventArgs.cs
- StorageBasedPackageProperties.cs
- NativeBuffer.cs
- HWStack.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- ConsoleKeyInfo.cs
- securitymgrsite.cs
- RawContentTypeMapper.cs