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
- ActivityXRefConverter.cs
- InternalPolicyElement.cs
- GridViewColumnHeaderAutomationPeer.cs
- SmiSettersStream.cs
- SchemaMapping.cs
- TableProvider.cs
- WindowsRichEdit.cs
- TabControlAutomationPeer.cs
- SpeechRecognitionEngine.cs
- LexicalChunk.cs
- SmtpReplyReader.cs
- WebPartMinimizeVerb.cs
- DataGridViewRowsAddedEventArgs.cs
- AssociationEndMember.cs
- ExecutorLocksHeldException.cs
- SymbolEqualComparer.cs
- TrackingProfileDeserializationException.cs
- XmlFormatMapping.cs
- CustomErrorCollection.cs
- XmlILModule.cs
- GeometryHitTestResult.cs
- LayoutUtils.cs
- NativeMethodsOther.cs
- WindowsListViewItemStartMenu.cs
- EpmHelper.cs
- PinnedBufferMemoryStream.cs
- MonikerHelper.cs
- RadialGradientBrush.cs
- DataControlFieldTypeEditor.cs
- ComEventsInfo.cs
- UiaCoreApi.cs
- SqlParameterizer.cs
- DashStyles.cs
- TypeSemantics.cs
- Rotation3DAnimationUsingKeyFrames.cs
- FrameworkElement.cs
- FastEncoder.cs
- DbTransaction.cs
- SmiContext.cs
- MeasureItemEvent.cs
- TcpStreams.cs
- ObservableDictionary.cs
- CodeIterationStatement.cs
- sqlser.cs
- DataGridViewMethods.cs
- TransformerInfoCollection.cs
- JsonUriDataContract.cs
- ApplicationManager.cs
- MailBnfHelper.cs
- ChannelFactory.cs
- AvTraceDetails.cs
- OrderByLifter.cs
- WsdlBuildProvider.cs
- ProviderBase.cs
- BlockExpression.cs
- TextDataBindingHandler.cs
- PageCache.cs
- ProgramPublisher.cs
- GatewayIPAddressInformationCollection.cs
- UIPermission.cs
- DataGridAddNewRow.cs
- StoreItemCollection.Loader.cs
- ConfigurationManagerInternal.cs
- NTAccount.cs
- DataRecord.cs
- COM2Properties.cs
- Compress.cs
- DataBoundControlHelper.cs
- CompressStream.cs
- WebPartsPersonalizationAuthorization.cs
- SelectedDatesCollection.cs
- ComponentDispatcherThread.cs
- Blend.cs
- ClientSettings.cs
- ItemAutomationPeer.cs
- ErrorStyle.cs
- NativeConfigurationLoader.cs
- ListControlStringCollectionEditor.cs
- filewebresponse.cs
- _SslSessionsCache.cs
- SiteMapDataSource.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- XmlSiteMapProvider.cs
- Win32Exception.cs
- RayMeshGeometry3DHitTestResult.cs
- EntitySetDataBindingList.cs
- SettingsPropertyValueCollection.cs
- PrinterSettings.cs
- FederatedMessageSecurityOverHttpElement.cs
- DynamicILGenerator.cs
- TypeDescriptionProviderAttribute.cs
- AddInPipelineAttributes.cs
- ServiceOperationParameter.cs
- WindowsFormsLinkLabel.cs
- RegularExpressionValidator.cs
- HostingEnvironmentSection.cs
- RuleSetDialog.cs
- InternalConfigSettingsFactory.cs
- XmlCodeExporter.cs
- SmtpNegotiateAuthenticationModule.cs