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
- IndexerNameAttribute.cs
- LeafCellTreeNode.cs
- MatrixTransform.cs
- GridViewSortEventArgs.cs
- DbProviderFactory.cs
- KnownTypes.cs
- DataControlButton.cs
- StringComparer.cs
- ExeConfigurationFileMap.cs
- NotificationContext.cs
- QuaternionAnimation.cs
- Accessors.cs
- httpserverutility.cs
- DataConnectionHelper.cs
- ObjectHelper.cs
- ImageSourceValueSerializer.cs
- WorkflowServiceHost.cs
- BrowserCapabilitiesFactory.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- BindMarkupExtensionSerializer.cs
- SafeArrayRankMismatchException.cs
- GridItemProviderWrapper.cs
- PackWebResponse.cs
- objectresult_tresulttype.cs
- XmlQueryOutput.cs
- FromReply.cs
- Control.cs
- EventProvider.cs
- XmlTextWriter.cs
- XamlWriter.cs
- RowToParametersTransformer.cs
- HttpModule.cs
- HandleDictionary.cs
- TextFormatterContext.cs
- CategoryAttribute.cs
- HyperLinkField.cs
- CodeConstructor.cs
- EntityDataSourceChangingEventArgs.cs
- RouteValueDictionary.cs
- SafeRegistryKey.cs
- Util.cs
- ControllableStoryboardAction.cs
- EntityConnectionStringBuilder.cs
- SafeBitVector32.cs
- StrokeNodeOperations2.cs
- VirtualizedContainerService.cs
- CustomTypeDescriptor.cs
- TaskExtensions.cs
- XmlILStorageConverter.cs
- AttributeAction.cs
- BinaryFormatter.cs
- ResXDataNode.cs
- CodeEventReferenceExpression.cs
- DrawItemEvent.cs
- PathNode.cs
- RequestCachePolicy.cs
- ParameterCollection.cs
- CryptoHelper.cs
- AlphaSortedEnumConverter.cs
- DataSourceView.cs
- FieldNameLookup.cs
- ElementHostAutomationPeer.cs
- EntryWrittenEventArgs.cs
- SourceSwitch.cs
- FactoryId.cs
- ThreadStaticAttribute.cs
- RelationshipManager.cs
- Lookup.cs
- CompilerScopeManager.cs
- WizardForm.cs
- dbenumerator.cs
- ResourceWriter.cs
- DataControlImageButton.cs
- SqlDataSourceCommandEventArgs.cs
- PropertyReferenceSerializer.cs
- LambdaValue.cs
- XamlTypeMapper.cs
- DataObjectFieldAttribute.cs
- ResourcesBuildProvider.cs
- AtomEntry.cs
- DataReaderContainer.cs
- ToolStripProgressBar.cs
- LineUtil.cs
- UnknownWrapper.cs
- WebConfigurationHostFileChange.cs
- WorkflowElementDialog.cs
- TableLayoutSettings.cs
- TypeReference.cs
- Restrictions.cs
- AspNetSynchronizationContext.cs
- CommonProperties.cs
- FileAuthorizationModule.cs
- ObjectDataSourceStatusEventArgs.cs
- SQLMoneyStorage.cs
- MultilineStringConverter.cs
- UnaryExpression.cs
- ViewStateException.cs
- URLIdentityPermission.cs
- ExpressionReplacer.cs
- StrokeNodeData.cs