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
- WarningException.cs
- securitycriticaldata.cs
- DtdParser.cs
- HtmlGenericControl.cs
- SuppressIldasmAttribute.cs
- FixedDocument.cs
- DataRowView.cs
- DbMetaDataFactory.cs
- DetailsViewUpdateEventArgs.cs
- MetadataException.cs
- SyndicationSerializer.cs
- PnrpPermission.cs
- ConfigXmlElement.cs
- ObjectListDataBindEventArgs.cs
- FixedPageAutomationPeer.cs
- SchemaInfo.cs
- AssemblyUtil.cs
- SystemIcmpV4Statistics.cs
- ColumnReorderedEventArgs.cs
- CategoryNameCollection.cs
- FontCollection.cs
- SqlRemoveConstantOrderBy.cs
- SchemaImporter.cs
- CertificateManager.cs
- XDeferredAxisSource.cs
- AssemblyCache.cs
- VectorAnimation.cs
- MouseActionValueSerializer.cs
- GridToolTip.cs
- DecoderReplacementFallback.cs
- X509Utils.cs
- PointAnimationBase.cs
- CommandExpr.cs
- BamlTreeMap.cs
- InvalidPropValue.cs
- OperationInfo.cs
- Pen.cs
- BulletedListEventArgs.cs
- WpfKnownMember.cs
- TypeDependencyAttribute.cs
- ValueChangedEventManager.cs
- __Filters.cs
- PhonemeEventArgs.cs
- RegexMatch.cs
- Help.cs
- Mapping.cs
- CategoryGridEntry.cs
- NoPersistHandle.cs
- HelpProvider.cs
- UnsafeNativeMethods.cs
- SqlCharStream.cs
- SQLString.cs
- SmtpReplyReader.cs
- OdbcParameter.cs
- FontCollection.cs
- Rijndael.cs
- ChangesetResponse.cs
- DataServiceQueryException.cs
- AudioLevelUpdatedEventArgs.cs
- Interfaces.cs
- WindowShowOrOpenTracker.cs
- XamlFilter.cs
- Terminate.cs
- MemberAccessException.cs
- InvalidOleVariantTypeException.cs
- DesignTimeData.cs
- DBCSCodePageEncoding.cs
- SqlStatistics.cs
- SecurityManager.cs
- OracleColumn.cs
- ColorInterpolationModeValidation.cs
- ScriptControlManager.cs
- PersonalizablePropertyEntry.cs
- SingleAnimation.cs
- PropertyValueEditor.cs
- CompositeDispatchFormatter.cs
- SqlDeflator.cs
- CommandEventArgs.cs
- OwnerDrawPropertyBag.cs
- FormCollection.cs
- SelectorAutomationPeer.cs
- RegexCompiler.cs
- TextDecoration.cs
- DataSpaceManager.cs
- AppSettingsExpressionBuilder.cs
- TransactionFilter.cs
- VisualCollection.cs
- Ipv6Element.cs
- FileLoadException.cs
- ParserHooks.cs
- SerializationInfoEnumerator.cs
- AppSettingsSection.cs
- Attributes.cs
- HttpApplicationFactory.cs
- IImplicitResourceProvider.cs
- WebPartEditorOkVerb.cs
- ListViewInsertEventArgs.cs
- MenuItemCollection.cs
- NegotiationTokenAuthenticatorStateCache.cs
- DependencyPropertyKind.cs