Code:
/ DotNET / DotNET / 8.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
- WebContentFormatHelper.cs
- MetadataUtilsSmi.cs
- ObjectComplexPropertyMapping.cs
- ClientUtils.cs
- RemotingConfiguration.cs
- DocumentViewerConstants.cs
- AbsoluteQuery.cs
- CustomAttributeBuilder.cs
- ScriptRef.cs
- ScriptResourceHandler.cs
- PersonalizationProvider.cs
- LocationUpdates.cs
- ReadOnlyPropertyMetadata.cs
- behaviorssection.cs
- VisualStyleElement.cs
- DateTime.cs
- CardSpacePolicyElement.cs
- SystemResourceKey.cs
- DragDropHelper.cs
- SetState.cs
- XmlWellformedWriter.cs
- AnnotationObservableCollection.cs
- DoubleIndependentAnimationStorage.cs
- CmsUtils.cs
- ImageListStreamer.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- SafeMILHandleMemoryPressure.cs
- Substitution.cs
- QilDataSource.cs
- PasswordRecoveryDesigner.cs
- X509WindowsSecurityToken.cs
- SqlMultiplexer.cs
- DbConnectionInternal.cs
- WhiteSpaceTrimStringConverter.cs
- PersistenceProviderElement.cs
- XmlCustomFormatter.cs
- ManualResetEvent.cs
- SafeBitVector32.cs
- QueryStringConverter.cs
- validation.cs
- LiteralTextParser.cs
- PolyBezierSegment.cs
- EntityCodeGenerator.cs
- WebServiceData.cs
- TypeSystem.cs
- RectAnimationBase.cs
- PingReply.cs
- BitVec.cs
- CurrencyWrapper.cs
- SymDocumentType.cs
- GuidelineSet.cs
- RegularExpressionValidator.cs
- LogSwitch.cs
- Comparer.cs
- XmlCharType.cs
- WindowsToolbar.cs
- DataBindingsDialog.cs
- Brushes.cs
- FileEnumerator.cs
- DateTimeFormatInfo.cs
- DifferencingCollection.cs
- HttpCapabilitiesBase.cs
- ConfigXmlSignificantWhitespace.cs
- NamespaceTable.cs
- ResourceIDHelper.cs
- XmlSignatureManifest.cs
- TreeViewAutomationPeer.cs
- SqlErrorCollection.cs
- StrongNameUtility.cs
- QueryableFilterUserControl.cs
- ListItemParagraph.cs
- DesignerForm.cs
- FormViewRow.cs
- TextTabProperties.cs
- TrackingServices.cs
- SerializableAttribute.cs
- ResetableIterator.cs
- WSFederationHttpSecurity.cs
- Int32Rect.cs
- WindowProviderWrapper.cs
- SqlFacetAttribute.cs
- SynchronizedDispatch.cs
- AssemblySettingAttributes.cs
- _Connection.cs
- DateTimeFormat.cs
- PublishLicense.cs
- OperatingSystemVersionCheck.cs
- ProfilePropertyNameValidator.cs
- ComplexTypeEmitter.cs
- DataSourceCache.cs
- BinarySecretKeyIdentifierClause.cs
- WebPartVerb.cs
- RegexWriter.cs
- RenderData.cs
- PasswordTextContainer.cs
- Vector3DConverter.cs
- DbConnectionInternal.cs
- CollaborationHelperFunctions.cs
- IdentityHolder.cs
- IdentityHolder.cs