Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Collections / CaseInsensitiveComparer.cs / 1 / CaseInsensitiveComparer.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: CaseInsensitiveComparer ** ** ** ============================================================*/ namespace System.Collections { //This class does not contain members and does not need to be serializable using System; using System.Collections; using System.Globalization; [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public class CaseInsensitiveComparer : IComparer { private CompareInfo m_compareInfo; private static CaseInsensitiveComparer m_InvariantCaseInsensitiveComparer; public CaseInsensitiveComparer() { m_compareInfo = CultureInfo.CurrentCulture.CompareInfo; } public CaseInsensitiveComparer(CultureInfo culture) { if (culture==null) { throw new ArgumentNullException("culture"); } m_compareInfo = culture.CompareInfo; } public static CaseInsensitiveComparer Default { get { return new CaseInsensitiveComparer(CultureInfo.CurrentCulture); } } public static CaseInsensitiveComparer DefaultInvariant { get { if (m_InvariantCaseInsensitiveComparer == null) { m_InvariantCaseInsensitiveComparer = new CaseInsensitiveComparer(CultureInfo.InvariantCulture); } return m_InvariantCaseInsensitiveComparer; } } // Behaves exactly like Comparer.Default.Compare except that the comparison is case insensitive // Compares two Objects by calling CompareTo. If a == // b,0 is returned. If a implements // IComparable, a.CompareTo(b) is returned. If a // doesn't implement IComparable and b does, // -(b.CompareTo(a)) is returned, otherwise an // exception is thrown. // public int Compare(Object a, Object b) { String sa = a as String; String sb = b as String; if (sa != null && sb != null) return m_compareInfo.Compare(sa, sb, CompareOptions.IgnoreCase); else return Comparer.Default.Compare(a,b); } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlSchemaSimpleContent.cs
- PbrsForward.cs
- IndexedEnumerable.cs
- TypeForwardedFromAttribute.cs
- ScalarRestriction.cs
- PropertyItemInternal.cs
- BaseAddressPrefixFilterElementCollection.cs
- PasswordDeriveBytes.cs
- GuidelineCollection.cs
- Int32RectConverter.cs
- SignatureConfirmations.cs
- Rights.cs
- FrameworkContentElement.cs
- InputScopeManager.cs
- ProxyWebPartConnectionCollection.cs
- DataGridAutoFormatDialog.cs
- FormViewCommandEventArgs.cs
- Operator.cs
- DataSourceControlBuilder.cs
- ViewKeyConstraint.cs
- PropertyReference.cs
- WindowsEditBox.cs
- GlyphsSerializer.cs
- ReadOnlyTernaryTree.cs
- PerfCounterSection.cs
- ISO2022Encoding.cs
- LayoutSettings.cs
- UserValidatedEventArgs.cs
- BinaryExpressionHelper.cs
- mansign.cs
- BamlStream.cs
- XslAst.cs
- DataRowExtensions.cs
- StyleConverter.cs
- EntityDataSourceChangedEventArgs.cs
- DependencyObject.cs
- BooleanSwitch.cs
- SwitchAttribute.cs
- WaitHandle.cs
- ResourceAssociationSetEnd.cs
- PermissionAttributes.cs
- FixUp.cs
- PersonalizationAdministration.cs
- CodeGeneratorOptions.cs
- Dispatcher.cs
- DynamicResourceExtension.cs
- StrongNamePublicKeyBlob.cs
- ProviderSettings.cs
- ControlLocalizer.cs
- ConnectionOrientedTransportManager.cs
- DockPanel.cs
- FunctionNode.cs
- HttpClientCertificate.cs
- PartitionerQueryOperator.cs
- ToolStripSystemRenderer.cs
- UnsafeNativeMethods.cs
- DataGridViewSelectedRowCollection.cs
- WindowsHyperlink.cs
- WriterOutput.cs
- TransportSecurityProtocol.cs
- ListViewGroupItemCollection.cs
- ISCIIEncoding.cs
- OrthographicCamera.cs
- PixelFormatConverter.cs
- RepeatBehaviorConverter.cs
- SafeNativeMethods.cs
- ColorAnimationUsingKeyFrames.cs
- Select.cs
- BufferBuilder.cs
- ButtonChrome.cs
- ReliableSessionBindingElement.cs
- CategoryList.cs
- ZipIOLocalFileHeader.cs
- HttpListenerPrefixCollection.cs
- ParsedAttributeCollection.cs
- FileIOPermission.cs
- BaseParagraph.cs
- AggregateNode.cs
- RenderingEventArgs.cs
- PassportAuthenticationEventArgs.cs
- DocumentGridPage.cs
- ClientSponsor.cs
- Scene3D.cs
- TextTreeTextNode.cs
- EventLogStatus.cs
- ADMembershipProvider.cs
- SerializationException.cs
- GridViewSelectEventArgs.cs
- XmlSchemaValidationException.cs
- ConstructorExpr.cs
- Vector.cs
- AssemblyBuilderData.cs
- MaskPropertyEditor.cs
- XDeferredAxisSource.cs
- translator.cs
- String.cs
- MinimizableAttributeTypeConverter.cs
- TogglePattern.cs
- InvokeWebService.cs
- PolicyException.cs