Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / CaseInsensitiveComparer.cs / 1305376 / 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; using System.Diagnostics.Contracts; [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"); } Contract.EndContractBlock(); m_compareInfo = culture.CompareInfo; } public static CaseInsensitiveComparer Default { get { Contract.Ensures(Contract.Result() != null); return new CaseInsensitiveComparer(CultureInfo.CurrentCulture); } } public static CaseInsensitiveComparer DefaultInvariant { get { Contract.Ensures(Contract.Result () != null); 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); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FontDifferentiator.cs
- StackOverflowException.cs
- PropertyCondition.cs
- PriorityItem.cs
- TextFormatterHost.cs
- DocumentPageTextView.cs
- QilGenerator.cs
- JsonWriterDelegator.cs
- AspNetHostingPermission.cs
- LicenseManager.cs
- DataRowChangeEvent.cs
- XpsImageSerializationService.cs
- TraceHwndHost.cs
- TemplateControl.cs
- DoubleCollection.cs
- InvalidOleVariantTypeException.cs
- BindingSource.cs
- DesignerSerializerAttribute.cs
- printdlgexmarshaler.cs
- HttpCookie.cs
- WebPageTraceListener.cs
- FormViewRow.cs
- ActivationServices.cs
- HWStack.cs
- PrimitiveOperationFormatter.cs
- AdRotator.cs
- MeasureData.cs
- CompensationTokenData.cs
- SqlDataAdapter.cs
- ThicknessAnimationUsingKeyFrames.cs
- SharedStatics.cs
- Floater.cs
- RemotingConfigParser.cs
- BamlLocalizabilityResolver.cs
- ServiceHttpHandlerFactory.cs
- CanExecuteRoutedEventArgs.cs
- ToolStripItemDataObject.cs
- BaseDataList.cs
- CatalogPartCollection.cs
- DesignerOptions.cs
- SqlProviderUtilities.cs
- Schedule.cs
- SignedInfo.cs
- tibetanshape.cs
- IgnoreFileBuildProvider.cs
- CardSpacePolicyElement.cs
- BamlReader.cs
- WindowsIdentity.cs
- XmlEncodedRawTextWriter.cs
- CompilerInfo.cs
- UserPreferenceChangedEventArgs.cs
- DataGridViewCheckBoxColumn.cs
- Compiler.cs
- XmlSchemaCompilationSettings.cs
- SingleStorage.cs
- UnmanagedMemoryStream.cs
- ColumnMapCopier.cs
- CategoryAttribute.cs
- ConnectionPoint.cs
- QilParameter.cs
- ClientReliableChannelBinder.cs
- SettingsSection.cs
- Int32EqualityComparer.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- ApplicationActivator.cs
- PathFigureCollectionConverter.cs
- Convert.cs
- AdRotator.cs
- DBCommandBuilder.cs
- CodeVariableReferenceExpression.cs
- RegexNode.cs
- EntryPointNotFoundException.cs
- XamlTypeMapper.cs
- Decoder.cs
- PropertyDescriptors.cs
- SqlCacheDependency.cs
- BindingGroup.cs
- WorkflowOwnershipException.cs
- CodeConstructor.cs
- ListBindingConverter.cs
- OpenTypeCommon.cs
- NavigatorOutput.cs
- CacheMode.cs
- ClientType.cs
- FilteredXmlReader.cs
- GPPOINT.cs
- SecurityDescriptor.cs
- DataRecordInternal.cs
- LinqDataSourceHelper.cs
- ProgressBarBrushConverter.cs
- EndpointAddressElementBase.cs
- ParseNumbers.cs
- CodeGroup.cs
- CheckedListBox.cs
- OdbcConnectionPoolProviderInfo.cs
- ManipulationDevice.cs
- DbMetaDataColumnNames.cs
- RsaSecurityToken.cs
- ConfigXmlWhitespace.cs
- DeclarationUpdate.cs