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
- MsmqIntegrationInputChannel.cs
- RotateTransform3D.cs
- HttpDictionary.cs
- WindowsIdentity.cs
- SecurityKeyIdentifierClause.cs
- UniqueIdentifierService.cs
- GreenMethods.cs
- SHA512.cs
- TrackingDataItemValue.cs
- BulletChrome.cs
- CommandBinding.cs
- SQLResource.cs
- FacetChecker.cs
- AccessText.cs
- CultureSpecificStringDictionary.cs
- WebPartTracker.cs
- AuthorizationRuleCollection.cs
- TaiwanLunisolarCalendar.cs
- ExpressionsCollectionConverter.cs
- TraceListeners.cs
- ComAdminInterfaces.cs
- BulletedListEventArgs.cs
- TaskHelper.cs
- VisualBasicExpressionConverter.cs
- CompiledRegexRunner.cs
- GetWinFXPath.cs
- InheritanceService.cs
- RequestNavigateEventArgs.cs
- SerTrace.cs
- StringFunctions.cs
- newinstructionaction.cs
- COM2IPerPropertyBrowsingHandler.cs
- SiteMapSection.cs
- NegatedConstant.cs
- InkPresenter.cs
- RelOps.cs
- Rotation3D.cs
- SchemaImporterExtension.cs
- HttpDigestClientElement.cs
- ZipIOLocalFileHeader.cs
- ObjectConverter.cs
- DataTablePropertyDescriptor.cs
- AssociationSet.cs
- OracleBoolean.cs
- DbgCompiler.cs
- MenuBase.cs
- ListenerBinder.cs
- WindowAutomationPeer.cs
- ADConnectionHelper.cs
- XhtmlBasicFormAdapter.cs
- DebugTracing.cs
- XsltException.cs
- CodeConstructor.cs
- TCEAdapterGenerator.cs
- RenderingEventArgs.cs
- Sql8ConformanceChecker.cs
- JsonReader.cs
- SqlBulkCopy.cs
- TdsParserHelperClasses.cs
- ReflectionTypeLoadException.cs
- SigningDialog.cs
- SecuritySessionClientSettings.cs
- NonParentingControl.cs
- ipaddressinformationcollection.cs
- Point.cs
- FocusChangedEventArgs.cs
- XmlSchemaAttribute.cs
- MarkupObject.cs
- ContactManager.cs
- PerformanceCountersElement.cs
- OracleParameter.cs
- ChannelPoolSettings.cs
- XamlFxTrace.cs
- Rectangle.cs
- CriticalHandle.cs
- ApplicationServiceManager.cs
- DynamicRendererThreadManager.cs
- FieldToken.cs
- AddInProcess.cs
- VolatileEnlistmentMultiplexing.cs
- SapiAttributeParser.cs
- ListComponentEditorPage.cs
- SqlCacheDependencySection.cs
- StrokeNodeOperations2.cs
- OleDbDataAdapter.cs
- GroupBoxRenderer.cs
- ProgramNode.cs
- ApplicationException.cs
- Binding.cs
- Memoizer.cs
- LinkLabel.cs
- LocalizableAttribute.cs
- ComplusEndpointConfigContainer.cs
- AudioFileOut.cs
- SqlCacheDependency.cs
- ConnectionManagementElement.cs
- OpCodes.cs
- String.cs
- CollectionBase.cs
- FileNameEditor.cs