Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Util / SymbolEqualComparer.cs / 1305376 / 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.[To be supplied.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- InvalidOperationException.cs
- ApplicationSecurityInfo.cs
- FunctionUpdateCommand.cs
- PageContent.cs
- SimpleWorkerRequest.cs
- DataTable.cs
- QueryOutputWriter.cs
- UriTemplateLiteralQueryValue.cs
- BaseInfoTable.cs
- Region.cs
- MonitorWrapper.cs
- IsolatedStorageFile.cs
- TaiwanLunisolarCalendar.cs
- ExclusiveCanonicalizationTransform.cs
- EndOfStreamException.cs
- ZeroOpNode.cs
- DataSourceExpressionCollection.cs
- CodeMethodReturnStatement.cs
- NetDataContractSerializer.cs
- NativeMethods.cs
- FunctionParameter.cs
- XmlWriter.cs
- PackageController.cs
- CompilerErrorCollection.cs
- DesignerSerializationVisibilityAttribute.cs
- DataColumn.cs
- HttpFileCollectionBase.cs
- DatePickerAutomationPeer.cs
- PackageDigitalSignatureManager.cs
- selecteditemcollection.cs
- ExpressionBuilderContext.cs
- base64Transforms.cs
- ScaleTransform3D.cs
- EventRoute.cs
- IndicCharClassifier.cs
- ImportRequest.cs
- TimeEnumHelper.cs
- ExpressionList.cs
- ItemPager.cs
- PackagePart.cs
- DataServiceClientException.cs
- PersonalizableAttribute.cs
- RuntimeArgumentHandle.cs
- SystemDropShadowChrome.cs
- PopOutPanel.cs
- UnicodeEncoding.cs
- WorkflowServiceBehavior.cs
- XmlSiteMapProvider.cs
- EnumValidator.cs
- AssemblyBuilder.cs
- DetailsViewPagerRow.cs
- StandardRuntimeEnumValidatorAttribute.cs
- RepeaterItemCollection.cs
- Relationship.cs
- ColorConvertedBitmapExtension.cs
- DrawToolTipEventArgs.cs
- DataFormat.cs
- SqlVisitor.cs
- DeviceContexts.cs
- HtmlValidatorAdapter.cs
- XmlSchemaImport.cs
- SoapObjectReader.cs
- DeviceSpecificDialogCachedState.cs
- DetailsViewRowCollection.cs
- NamespaceQuery.cs
- DataGridViewRowPostPaintEventArgs.cs
- CustomAssemblyResolver.cs
- SecurityTokenRequirement.cs
- DynamicValidatorEventArgs.cs
- unsafenativemethodstextservices.cs
- WorkflowOwnershipException.cs
- BasicExpandProvider.cs
- ConversionHelper.cs
- SmiContext.cs
- SerializerDescriptor.cs
- CodeGen.cs
- HTMLTextWriter.cs
- CalendarDay.cs
- DynamicDocumentPaginator.cs
- DataAdapter.cs
- NGCSerializationManager.cs
- PeerNameResolver.cs
- DataSourceHelper.cs
- recordstatefactory.cs
- XamlPoint3DCollectionSerializer.cs
- HttpWebRequest.cs
- RadioButtonDesigner.cs
- FlowNode.cs
- FloatUtil.cs
- GlyphingCache.cs
- SingleAnimationBase.cs
- BufferedGraphics.cs
- OracleSqlParser.cs
- SelectionEditor.cs
- ProxyOperationRuntime.cs
- SHA256Managed.cs
- ScriptResourceHandler.cs
- ResourceDescriptionAttribute.cs
- StatusBar.cs
- WebPartChrome.cs