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
- PropertyMap.cs
- AddInContractAttribute.cs
- RankException.cs
- DeviceSpecificChoice.cs
- SpeechDetectedEventArgs.cs
- MouseDevice.cs
- DataServiceBuildProvider.cs
- SQLDecimal.cs
- ProfileBuildProvider.cs
- TagMapInfo.cs
- GridViewRow.cs
- RSAProtectedConfigurationProvider.cs
- ImageSource.cs
- DataDocumentXPathNavigator.cs
- TextElementEnumerator.cs
- ParameterCollection.cs
- InputLangChangeRequestEvent.cs
- Int64Converter.cs
- UIElement3D.cs
- SystemFonts.cs
- ObjectSet.cs
- GridItemCollection.cs
- ImmComposition.cs
- RelatedPropertyManager.cs
- PersistenceTypeAttribute.cs
- DataGridColumnHeadersPresenter.cs
- XmlSchemaAnnotation.cs
- ZoneMembershipCondition.cs
- nulltextnavigator.cs
- ConfigXmlDocument.cs
- NavigationEventArgs.cs
- KeyTimeConverter.cs
- ComplexLine.cs
- XamlWriterExtensions.cs
- XmlQueryTypeFactory.cs
- FileClassifier.cs
- AutomationProperties.cs
- RectangleGeometry.cs
- AnnotationComponentChooser.cs
- DatePickerDateValidationErrorEventArgs.cs
- ObjectListDataBindEventArgs.cs
- EntityContainerAssociationSetEnd.cs
- WSSecureConversation.cs
- PersonalizablePropertyEntry.cs
- EventListener.cs
- ContainerParagraph.cs
- NameTable.cs
- XmlChoiceIdentifierAttribute.cs
- DataColumnCollection.cs
- HtmlImage.cs
- MapPathBasedVirtualPathProvider.cs
- MulticastDelegate.cs
- RoutedEvent.cs
- Span.cs
- HtmlEncodedRawTextWriter.cs
- Queue.cs
- WebServiceClientProxyGenerator.cs
- AttachmentCollection.cs
- ProxyWebPartConnectionCollection.cs
- QualifierSet.cs
- BaseCodePageEncoding.cs
- EntityDataSourceContextCreatedEventArgs.cs
- WorkflowControlEndpoint.cs
- UserControl.cs
- XmlText.cs
- XmlNodeComparer.cs
- LinqDataSourceView.cs
- UInt64Storage.cs
- ReadOnlyNameValueCollection.cs
- StagingAreaInputItem.cs
- ManipulationDeltaEventArgs.cs
- PolicyLevel.cs
- CatalogZoneAutoFormat.cs
- Internal.cs
- SessionStateSection.cs
- RegionData.cs
- EdmEntityTypeAttribute.cs
- XmlnsCache.cs
- SystemResources.cs
- ToggleProviderWrapper.cs
- WindowsEditBoxRange.cs
- WebPartDisplayModeCancelEventArgs.cs
- ManagementClass.cs
- MemberCollection.cs
- BitArray.cs
- UnescapedXmlDiagnosticData.cs
- HostingEnvironment.cs
- RegexInterpreter.cs
- SmiEventStream.cs
- Ref.cs
- FragmentNavigationEventArgs.cs
- PathParser.cs
- LambdaCompiler.Lambda.cs
- XmlSchemaExporter.cs
- MergePropertyDescriptor.cs
- HGlobalSafeHandle.cs
- StorageComplexTypeMapping.cs
- X509Certificate2Collection.cs
- TextElementEditingBehaviorAttribute.cs
- SqlServices.cs