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
- PhysicalAddress.cs
- SoapIncludeAttribute.cs
- SchemaTableColumn.cs
- FormsAuthenticationEventArgs.cs
- NullableLongAverageAggregationOperator.cs
- PropertyValueChangedEvent.cs
- SupportsEventValidationAttribute.cs
- BamlVersionHeader.cs
- PageVisual.cs
- Image.cs
- WebPartDisplayMode.cs
- BinaryQueryOperator.cs
- SecurityVersion.cs
- SafeProcessHandle.cs
- ComboBox.cs
- VolatileEnlistmentMultiplexing.cs
- XmlMtomReader.cs
- DataSourceDesigner.cs
- Latin1Encoding.cs
- DataSourceViewSchemaConverter.cs
- ProcessStartInfo.cs
- X509ClientCertificateCredentialsElement.cs
- mediaeventargs.cs
- UIElementAutomationPeer.cs
- LineMetrics.cs
- CompilerErrorCollection.cs
- ScrollItemPattern.cs
- WebServiceEnumData.cs
- OuterProxyWrapper.cs
- WindowsProgressbar.cs
- WebBaseEventKeyComparer.cs
- XmlSchemaSimpleContent.cs
- DesignerLoader.cs
- InvariantComparer.cs
- ManagedIStream.cs
- DesignerPainter.cs
- SqlXmlStorage.cs
- HierarchicalDataSourceControl.cs
- UniqueSet.cs
- DocumentEventArgs.cs
- XPathNodeIterator.cs
- StyleTypedPropertyAttribute.cs
- ComponentEditorForm.cs
- Switch.cs
- ServiceHttpModule.cs
- AssemblyInfo.cs
- StringInfo.cs
- BackgroundFormatInfo.cs
- DictionaryGlobals.cs
- LinearKeyFrames.cs
- DataTableMapping.cs
- RoutingEndpointTrait.cs
- HtmlInputImage.cs
- CodeTypeDeclarationCollection.cs
- XmlParserContext.cs
- ListSortDescriptionCollection.cs
- FormViewCommandEventArgs.cs
- Line.cs
- _SecureChannel.cs
- QualifierSet.cs
- JsonReaderDelegator.cs
- Variant.cs
- CroppedBitmap.cs
- DNS.cs
- XPathMultyIterator.cs
- RangeValidator.cs
- SafeFileMappingHandle.cs
- XmlSchemaInfo.cs
- Brush.cs
- InvariantComparer.cs
- FtpWebResponse.cs
- InlineUIContainer.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- Unit.cs
- TableLayout.cs
- ItemsPresenter.cs
- HashStream.cs
- BaseCollection.cs
- ResizeGrip.cs
- FlowPosition.cs
- Authorization.cs
- CompleteWizardStep.cs
- AttachInfo.cs
- QuaternionValueSerializer.cs
- DtdParser.cs
- PackageRelationshipSelector.cs
- _Connection.cs
- FunctionMappingTranslator.cs
- BmpBitmapDecoder.cs
- SortExpressionBuilder.cs
- DbReferenceCollection.cs
- SamlSerializer.cs
- Timer.cs
- XmlAttributeOverrides.cs
- SynchronizedCollection.cs
- lengthconverter.cs
- ConstraintEnumerator.cs
- Assembly.cs
- BaseCollection.cs
- XmlFormatExtensionPointAttribute.cs