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
- SiteMapProvider.cs
- XmlSerializer.cs
- DynamicActionMessageFilter.cs
- ExpressionBuilder.cs
- FieldToken.cs
- ProxyAttribute.cs
- COAUTHINFO.cs
- ApplicationBuildProvider.cs
- DynamicActivityTypeDescriptor.cs
- CodeThrowExceptionStatement.cs
- CultureSpecificStringDictionary.cs
- EditorZoneBase.cs
- Drawing.cs
- WebEvents.cs
- CoTaskMemHandle.cs
- ReadOnlyDictionary.cs
- ObjectDataProvider.cs
- ObjectCloneHelper.cs
- Stack.cs
- QueryFunctions.cs
- VisualBasicDesignerHelper.cs
- PackageDigitalSignatureManager.cs
- DataGridViewCheckBoxCell.cs
- SafeTimerHandle.cs
- XPathDocumentIterator.cs
- ObfuscateAssemblyAttribute.cs
- RelationshipEntry.cs
- MembershipValidatePasswordEventArgs.cs
- StrokeDescriptor.cs
- FixedPageProcessor.cs
- FormParameter.cs
- FtpRequestCacheValidator.cs
- IndentedTextWriter.cs
- MobileRedirect.cs
- CopyOnWriteList.cs
- BrowserDefinitionCollection.cs
- SizeAnimationClockResource.cs
- LayoutInformation.cs
- TextTreeRootNode.cs
- DeclarativeCatalogPart.cs
- DesignerView.cs
- HeaderedContentControl.cs
- ArcSegment.cs
- XmlSerializer.cs
- XamlGridLengthSerializer.cs
- ValidationSummary.cs
- AttributeTable.cs
- WsatServiceCertificate.cs
- SeekableReadStream.cs
- JpegBitmapEncoder.cs
- NamedPermissionSet.cs
- GlyphInfoList.cs
- metadatamappinghashervisitor.cs
- TabItemWrapperAutomationPeer.cs
- Int32AnimationBase.cs
- precedingsibling.cs
- NamedPipeHostedTransportConfiguration.cs
- XmlConvert.cs
- HandlerBase.cs
- MatrixTransform.cs
- XDeferredAxisSource.cs
- DbMetaDataCollectionNames.cs
- CommentEmitter.cs
- Serializer.cs
- InternalMappingException.cs
- CodeConstructor.cs
- PermissionSetTriple.cs
- RelativeSource.cs
- UInt16Converter.cs
- LineMetrics.cs
- FileAuthorizationModule.cs
- ServiceDocument.cs
- SQLInt16Storage.cs
- VariableDesigner.xaml.cs
- _FixedSizeReader.cs
- BitmapEffectGeneralTransform.cs
- AnonymousIdentificationModule.cs
- IconConverter.cs
- AppSettingsExpressionBuilder.cs
- DrawingContextDrawingContextWalker.cs
- RadioButtonStandardAdapter.cs
- CompilerHelpers.cs
- ReceiveCompletedEventArgs.cs
- HttpValueCollection.cs
- _Rfc2616CacheValidators.cs
- BinaryMethodMessage.cs
- DataTableNewRowEvent.cs
- DebugView.cs
- WebEvents.cs
- CultureTableRecord.cs
- ToolStripItemImageRenderEventArgs.cs
- FrameworkRichTextComposition.cs
- DependentList.cs
- CodeCastExpression.cs
- Padding.cs
- ZipFileInfo.cs
- EditingScopeUndoUnit.cs
- HtmlTextArea.cs
- ArgumentsParser.cs
- XmlSchemaComplexContentRestriction.cs