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
- OracleColumn.cs
- ZipArchive.cs
- CompiledELinqQueryState.cs
- ParagraphVisual.cs
- ZoneLinkButton.cs
- GridEntryCollection.cs
- TypeLibConverter.cs
- CanExecuteRoutedEventArgs.cs
- MenuItemStyle.cs
- ProcessManager.cs
- ObjectManager.cs
- GenericIdentity.cs
- WebColorConverter.cs
- DbProviderFactories.cs
- OptimisticConcurrencyException.cs
- CustomPopupPlacement.cs
- DecoderFallbackWithFailureFlag.cs
- XmlWrappingReader.cs
- WindowsToolbar.cs
- NegotiateStream.cs
- PerspectiveCamera.cs
- OracleNumber.cs
- DataRowView.cs
- InputBinder.cs
- VirtualizedContainerService.cs
- CacheOutputQuery.cs
- DataGridViewButtonCell.cs
- XmlLoader.cs
- ArrayElementGridEntry.cs
- Light.cs
- ByteStream.cs
- OdbcError.cs
- SerialPort.cs
- FatalException.cs
- VirtualPath.cs
- UnmanagedMemoryStreamWrapper.cs
- DynamicRenderer.cs
- EdmItemCollection.OcAssemblyCache.cs
- Attribute.cs
- LockedActivityGlyph.cs
- StringArrayConverter.cs
- CallSiteHelpers.cs
- OdbcDataReader.cs
- EventLog.cs
- ItemPager.cs
- DocumentXPathNavigator.cs
- MouseOverProperty.cs
- XamlPointCollectionSerializer.cs
- SafeCryptoHandles.cs
- MtomMessageEncoder.cs
- NullableFloatAverageAggregationOperator.cs
- InfoCardBaseException.cs
- DbConnectionPool.cs
- CompatibleIComparer.cs
- FrameworkElement.cs
- OneOfElement.cs
- WpfXamlMember.cs
- HandoffBehavior.cs
- StorageMappingItemCollection.cs
- CategoryValueConverter.cs
- InternalMappingException.cs
- Logging.cs
- CacheModeConverter.cs
- CharacterMetrics.cs
- ToolStripDropTargetManager.cs
- Vector3DAnimationBase.cs
- ACE.cs
- BigInt.cs
- DataGridViewImageColumn.cs
- DbMetaDataColumnNames.cs
- StringValidatorAttribute.cs
- WindowsListViewGroupHelper.cs
- Parser.cs
- IndexedString.cs
- WebBrowserBase.cs
- DataRecordInternal.cs
- QueryPageSettingsEventArgs.cs
- CookieProtection.cs
- ControlCollection.cs
- PropertyTabChangedEvent.cs
- DataListItemCollection.cs
- ConfigXmlComment.cs
- RadialGradientBrush.cs
- TdsEnums.cs
- DataExpression.cs
- XmlSiteMapProvider.cs
- RouteParametersHelper.cs
- StyleModeStack.cs
- GeneralTransform3DGroup.cs
- ConnectionStringSettingsCollection.cs
- lengthconverter.cs
- ReceiveCompletedEventArgs.cs
- SendDesigner.xaml.cs
- ContentPlaceHolderDesigner.cs
- StringAnimationUsingKeyFrames.cs
- CustomWebEventKey.cs
- GreenMethods.cs
- LateBoundBitmapDecoder.cs
- XmlValidatingReader.cs
- AmbiguousMatchException.cs