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
- XmlIterators.cs
- RefExpr.cs
- TypeConverterBase.cs
- ZoomPercentageConverter.cs
- RecognizerStateChangedEventArgs.cs
- XmlReflectionMember.cs
- CodeConstructor.cs
- KeyboardEventArgs.cs
- PropertyConverter.cs
- EndOfStreamException.cs
- cookiecontainer.cs
- filewebrequest.cs
- HtmlTableRowCollection.cs
- RecommendedAsConfigurableAttribute.cs
- DesignTimeParseData.cs
- PeerApplication.cs
- safePerfProviderHandle.cs
- EventSetter.cs
- AnnotationStore.cs
- PersonalizationStateInfo.cs
- MediaTimeline.cs
- CodeSubDirectoriesCollection.cs
- TextTrailingWordEllipsis.cs
- Int32Animation.cs
- FormViewInsertEventArgs.cs
- CodeCatchClauseCollection.cs
- ExceptionAggregator.cs
- LineServicesCallbacks.cs
- SqlUserDefinedTypeAttribute.cs
- ObjectKeyFrameCollection.cs
- COM2PropertyDescriptor.cs
- HttpFileCollection.cs
- PngBitmapDecoder.cs
- ZipFileInfoCollection.cs
- MethodCallConverter.cs
- EnlistmentTraceIdentifier.cs
- CalendarDesigner.cs
- serverconfig.cs
- AnonymousIdentificationModule.cs
- OleDbConnection.cs
- Highlights.cs
- UrlMappingsModule.cs
- Rijndael.cs
- ICollection.cs
- HtmlTextArea.cs
- ControlPager.cs
- CompositionTarget.cs
- CodeIdentifiers.cs
- GenericEnumerator.cs
- OleServicesContext.cs
- DaylightTime.cs
- CodeComment.cs
- ClientRuntime.cs
- TransformPattern.cs
- BinaryConverter.cs
- StringSorter.cs
- ReturnValue.cs
- FormsAuthenticationCredentials.cs
- TdsParser.cs
- Thickness.cs
- InputBuffer.cs
- documentsequencetextview.cs
- RC2CryptoServiceProvider.cs
- MediaSystem.cs
- ParseElementCollection.cs
- HostVisual.cs
- TextReader.cs
- DrawingGroup.cs
- ThreadExceptionDialog.cs
- UnauthorizedAccessException.cs
- EdmToObjectNamespaceMap.cs
- PersonalizationProviderCollection.cs
- ListViewInsertEventArgs.cs
- SqlDependency.cs
- DataGridViewRowsRemovedEventArgs.cs
- HostVisual.cs
- DbMetaDataFactory.cs
- CoTaskMemHandle.cs
- Matrix3D.cs
- VirtualizingPanel.cs
- IndicShape.cs
- EntityDataSource.cs
- CodeGotoStatement.cs
- WindowsGraphicsCacheManager.cs
- ItemTypeToolStripMenuItem.cs
- EmptyEnumerator.cs
- RegexNode.cs
- DnsElement.cs
- CompilerError.cs
- TryLoadRunnableWorkflowCommand.cs
- UserNamePasswordServiceCredential.cs
- TextEffectResolver.cs
- GlyphingCache.cs
- RSAOAEPKeyExchangeDeformatter.cs
- WebContext.cs
- ScriptModule.cs
- DropTarget.cs
- ValueType.cs
- XPathParser.cs
- wmiprovider.cs