Code:
/ FX-1434 / FX-1434 / 1.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
- TextServicesCompartmentContext.cs
- ValidationEventArgs.cs
- ScriptingWebServicesSectionGroup.cs
- TiffBitmapEncoder.cs
- EDesignUtil.cs
- WebSysDefaultValueAttribute.cs
- NoPersistScope.cs
- FileDialog_Vista.cs
- PrtTicket_Editor.cs
- AuthorizationPolicyTypeElement.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- SrgsSemanticInterpretationTag.cs
- ReadOnlyObservableCollection.cs
- DropDownList.cs
- StorageAssociationSetMapping.cs
- DataComponentGenerator.cs
- CircleHotSpot.cs
- ToolboxItemFilterAttribute.cs
- MethodImplAttribute.cs
- SoapReflectionImporter.cs
- AbstractSvcMapFileLoader.cs
- SocketInformation.cs
- DataGridBoolColumn.cs
- CryptoHelper.cs
- ObjectHelper.cs
- TextRunCacheImp.cs
- VisualTreeUtils.cs
- precedingquery.cs
- ThaiBuddhistCalendar.cs
- TextEffectResolver.cs
- DbDataAdapter.cs
- LayoutEditorPart.cs
- Mappings.cs
- InvalidBodyAccessException.cs
- ImageList.cs
- BoundPropertyEntry.cs
- GridViewUpdateEventArgs.cs
- SplitterCancelEvent.cs
- TextTrailingCharacterEllipsis.cs
- SchemaCompiler.cs
- FunctionUpdateCommand.cs
- DataSvcMapFile.cs
- Rect3D.cs
- VirtualizedCellInfoCollection.cs
- ThrowHelper.cs
- ObjectSpanRewriter.cs
- xmlglyphRunInfo.cs
- AsyncOperationManager.cs
- CollectionViewGroupRoot.cs
- _TimerThread.cs
- ContextMenuStripGroup.cs
- ExtensibleClassFactory.cs
- UnsafeNativeMethods.cs
- Vector3DCollectionConverter.cs
- FileDialog.cs
- MethodCallTranslator.cs
- SelectionProcessor.cs
- SecurityPermission.cs
- SecurityVerifiedMessage.cs
- ManipulationCompletedEventArgs.cs
- SharedPersonalizationStateInfo.cs
- TreeSet.cs
- IDReferencePropertyAttribute.cs
- ComponentManagerBroker.cs
- ToolstripProfessionalRenderer.cs
- OdbcConnectionOpen.cs
- GridViewDeleteEventArgs.cs
- WorkflowTransactionOptions.cs
- WinCategoryAttribute.cs
- ACL.cs
- ReadWriteObjectLock.cs
- DataPagerFieldCollection.cs
- TemplateKeyConverter.cs
- IBuiltInEvidence.cs
- GlyphInfoList.cs
- WpfXamlType.cs
- RenderDataDrawingContext.cs
- WindowsToolbar.cs
- ValueSerializerAttribute.cs
- XsdValidatingReader.cs
- Token.cs
- AsyncContentLoadedEventArgs.cs
- AppDomainFactory.cs
- VBCodeProvider.cs
- UInt16Storage.cs
- HiddenField.cs
- RotateTransform3D.cs
- CheckBoxFlatAdapter.cs
- MD5HashHelper.cs
- DbInsertCommandTree.cs
- Publisher.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- UriWriter.cs
- ProcessProtocolHandler.cs
- EdmScalarPropertyAttribute.cs
- ScopelessEnumAttribute.cs
- SecurityException.cs
- EntityProviderFactory.cs
- ApplicationActivator.cs
- Util.cs