Code:
/ 4.0 / 4.0 / 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.
// ==++==
//
// 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
- OutputCacheSection.cs
- TargetPerspective.cs
- ValueUnavailableException.cs
- DataGridCommandEventArgs.cs
- InfoCardBaseException.cs
- CqlQuery.cs
- SafePEFileHandle.cs
- ValueExpressions.cs
- IntegerValidator.cs
- SQLGuid.cs
- CompoundFileReference.cs
- ActivationArguments.cs
- HorizontalAlignConverter.cs
- ResetableIterator.cs
- AtomPub10ServiceDocumentFormatter.cs
- TemplateControlParser.cs
- KnownTypes.cs
- XmlSchemaCollection.cs
- recordstate.cs
- XmlQueryCardinality.cs
- PropertyChangedEventArgs.cs
- AppDomainAttributes.cs
- TrackBarRenderer.cs
- HijriCalendar.cs
- GuidelineSet.cs
- KeyManager.cs
- BaseCollection.cs
- StreamWriter.cs
- SoapMessage.cs
- Size.cs
- XmlDocumentSerializer.cs
- Module.cs
- MetadataArtifactLoader.cs
- XmlCharCheckingWriter.cs
- ContainerSelectorGlyph.cs
- TdsEnums.cs
- SurrogateEncoder.cs
- TraceLevelStore.cs
- DataGridPagerStyle.cs
- SerializableAuthorizationContext.cs
- EntityDataSourceDesigner.cs
- WebEventCodes.cs
- serverconfig.cs
- ProjectionCamera.cs
- DataGridViewCellParsingEventArgs.cs
- StringToken.cs
- LiteralTextParser.cs
- WorkflowInlining.cs
- COM2TypeInfoProcessor.cs
- StyleBamlRecordReader.cs
- XmlDocumentType.cs
- HGlobalSafeHandle.cs
- HtmlTableCell.cs
- NonParentingControl.cs
- WSDualHttpSecurity.cs
- basevalidator.cs
- KeyTimeConverter.cs
- HttpModulesSection.cs
- mda.cs
- SqlParameter.cs
- SmtpNegotiateAuthenticationModule.cs
- TextDocumentView.cs
- MethodBody.cs
- OutputCacheProfile.cs
- ApplicationFileParser.cs
- RootDesignerSerializerAttribute.cs
- BypassElementCollection.cs
- ToolStripSplitStackLayout.cs
- DataKeyArray.cs
- XmlMemberMapping.cs
- EllipseGeometry.cs
- MetadataStore.cs
- XomlDesignerLoader.cs
- SecurityResources.cs
- COM2Enum.cs
- LoadRetryHandler.cs
- CodeNamespaceImport.cs
- RoleService.cs
- UnsafeMethods.cs
- HScrollBar.cs
- DoubleLinkListEnumerator.cs
- Enlistment.cs
- SettingsPropertyNotFoundException.cs
- HexParser.cs
- PartialTrustHelpers.cs
- ListItemConverter.cs
- SpecialNameAttribute.cs
- SoapRpcMethodAttribute.cs
- DataRowCollection.cs
- XmlConvert.cs
- HuffmanTree.cs
- DefaultValueTypeConverter.cs
- DataObjectAttribute.cs
- GridViewSortEventArgs.cs
- TypeDescriptorFilterService.cs
- CustomAssemblyResolver.cs
- SoapClientProtocol.cs
- MiniAssembly.cs
- EnumValidator.cs
- URLMembershipCondition.cs