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
- ConfigXmlAttribute.cs
- ListViewDeleteEventArgs.cs
- TextTreeRootTextBlock.cs
- RowBinding.cs
- XmlSchemaImporter.cs
- SdlChannelSink.cs
- XPathNavigatorReader.cs
- ValueTypeFieldReference.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- Set.cs
- StandardToolWindows.cs
- IsolatedStoragePermission.cs
- ObjectDataSourceEventArgs.cs
- ToolStripManager.cs
- ObjectStateManager.cs
- ExpressionLink.cs
- relpropertyhelper.cs
- XamlFilter.cs
- TreeNodeSelectionProcessor.cs
- MultiPageTextView.cs
- DecimalSumAggregationOperator.cs
- WorkflowInstanceExtensionCollection.cs
- SafeBitVector32.cs
- Material.cs
- DocumentSequence.cs
- PolyQuadraticBezierSegment.cs
- WebPartVerbsEventArgs.cs
- WebConfigurationFileMap.cs
- ToolStripItemRenderEventArgs.cs
- TraceListener.cs
- RegexTree.cs
- _HTTPDateParse.cs
- CssTextWriter.cs
- EventMappingSettingsCollection.cs
- XmlChildEnumerator.cs
- ContainerUIElement3D.cs
- Int64AnimationUsingKeyFrames.cs
- FilteredDataSetHelper.cs
- CanonicalFontFamilyReference.cs
- SaveFileDialog.cs
- ReturnEventArgs.cs
- Ray3DHitTestResult.cs
- Focus.cs
- InfoCardUIAgent.cs
- FontDriver.cs
- CorrelationManager.cs
- HtmlInputHidden.cs
- ModuleConfigurationInfo.cs
- SystemIPAddressInformation.cs
- WCFServiceClientProxyGenerator.cs
- ExpressionPrinter.cs
- SymbolDocumentInfo.cs
- ThemeDirectoryCompiler.cs
- EventProviderWriter.cs
- MailFileEditor.cs
- InputReferenceExpression.cs
- FileChangeNotifier.cs
- NumberAction.cs
- TypeHelper.cs
- EntityTemplateUserControl.cs
- Keywords.cs
- TargetInvocationException.cs
- ExpandableObjectConverter.cs
- RecordManager.cs
- XPathNode.cs
- DataSetMappper.cs
- WebConfigurationHostFileChange.cs
- BindStream.cs
- shaperfactoryquerycachekey.cs
- LabelAutomationPeer.cs
- SafeNativeMethods.cs
- UnionExpr.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- IriParsingElement.cs
- WindowsListViewItem.cs
- SelectQueryOperator.cs
- ListViewGroupItemCollection.cs
- ChangePassword.cs
- OverlappedContext.cs
- _NetRes.cs
- ClientScriptManagerWrapper.cs
- DelegatedStream.cs
- FontWeight.cs
- ActiveXSite.cs
- GraphicsPathIterator.cs
- SchemaCollectionCompiler.cs
- DataGridViewColumnCollectionDialog.cs
- FrameworkElement.cs
- TraceLog.cs
- SystemTcpConnection.cs
- ComponentChangingEvent.cs
- XamlHostingSectionGroup.cs
- FullTextBreakpoint.cs
- HttpDebugHandler.cs
- Section.cs
- MembershipPasswordException.cs
- Selection.cs
- PackUriHelper.cs
- WsatExtendedInformation.cs
- PrePrepareMethodAttribute.cs