Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / StructuralComparisons.cs / 1305376 / StructuralComparisons.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //[....] // using System; namespace System.Collections { public static class StructuralComparisons { private static IComparer s_StructuralComparer; private static IEqualityComparer s_StructuralEqualityComparer; public static IComparer StructuralComparer { get { IComparer comparer = s_StructuralComparer; if (comparer == null) { comparer = new StructuralComparer(); s_StructuralComparer = comparer; } return comparer; } } public static IEqualityComparer StructuralEqualityComparer { get { IEqualityComparer comparer = s_StructuralEqualityComparer; if (comparer == null) { comparer = new StructuralEqualityComparer(); s_StructuralEqualityComparer = comparer; } return comparer; } } } [Serializable] internal class StructuralEqualityComparer : IEqualityComparer { public new bool Equals(Object x, Object y) { if (x != null) { IStructuralEquatable seObj = x as IStructuralEquatable; if (seObj != null){ return seObj.Equals(y, this); } if (y != null) { return x.Equals(y); } else { return false; } } if (y != null) return false; return true; } public int GetHashCode(Object obj) { if (obj == null) return 0; IStructuralEquatable seObj = obj as IStructuralEquatable; if (seObj != null) { return seObj.GetHashCode(this); } return obj.GetHashCode(); } } [Serializable] internal class StructuralComparer : IComparer { public int Compare(Object x, Object y) { if (x == null) return y == null ? 0 : -1; if (y == null) return 1; IStructuralComparable scX = x as IStructuralComparable; if (scX != null) { return scX.CompareTo(y, this); } return Comparer.Default.Compare(x, y); } } } // 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
- recordstate.cs
- Set.cs
- MemberHolder.cs
- EmptyElement.cs
- XslTransformFileEditor.cs
- ListViewCancelEventArgs.cs
- EventProviderWriter.cs
- List.cs
- MimeBasePart.cs
- CodeExpressionRuleDeclaration.cs
- XmlQueryCardinality.cs
- SchemaImporterExtensionElement.cs
- EpmContentDeSerializer.cs
- CodeLinePragma.cs
- PositiveTimeSpanValidatorAttribute.cs
- CodeEventReferenceExpression.cs
- XamlTemplateSerializer.cs
- ToolboxItemCollection.cs
- TraceContextEventArgs.cs
- XmlNodeReader.cs
- StrongNamePublicKeyBlob.cs
- XmlNodeChangedEventArgs.cs
- EncoderBestFitFallback.cs
- ArithmeticLiteral.cs
- ListViewSelectEventArgs.cs
- PackageRelationshipSelector.cs
- GeometryModel3D.cs
- FontResourceCache.cs
- CompilerResults.cs
- TemplateKey.cs
- SecUtil.cs
- RecommendedAsConfigurableAttribute.cs
- WebPartUtil.cs
- CustomError.cs
- ResourceKey.cs
- DataGridColumnHeadersPresenter.cs
- Comparer.cs
- BinaryMethodMessage.cs
- InternalTypeHelper.cs
- input.cs
- CanonicalXml.cs
- ActiveDocumentEvent.cs
- QilFunction.cs
- AppAction.cs
- UInt64Storage.cs
- NullableDecimalMinMaxAggregationOperator.cs
- DataGridViewImageColumn.cs
- MappableObjectManager.cs
- CodeTypeParameterCollection.cs
- InputElement.cs
- ListView.cs
- QilLiteral.cs
- MetadataUtilsSmi.cs
- InternalBufferOverflowException.cs
- WebPartRestoreVerb.cs
- DomNameTable.cs
- XmlCountingReader.cs
- CookieHandler.cs
- SqlIdentifier.cs
- LocalizableAttribute.cs
- GenericWebPart.cs
- SafeNativeMethodsCLR.cs
- DelegatedStream.cs
- OdbcEnvironment.cs
- WebBrowserUriTypeConverter.cs
- OperationValidationEventArgs.cs
- ComponentCodeDomSerializer.cs
- Win32MouseDevice.cs
- WindowsServiceElement.cs
- CompleteWizardStep.cs
- CompensationParticipant.cs
- PrintDialog.cs
- VisualStyleInformation.cs
- FixedBufferAttribute.cs
- xml.cs
- DataGridViewTextBoxColumn.cs
- WebPartConnectionsCancelEventArgs.cs
- IdentifierElement.cs
- RightsManagementEncryptionTransform.cs
- NeutralResourcesLanguageAttribute.cs
- AppModelKnownContentFactory.cs
- AccessDataSourceView.cs
- SourceFileInfo.cs
- WebServiceResponseDesigner.cs
- ObservableCollection.cs
- BindingExpressionBase.cs
- WebPartVerbsEventArgs.cs
- IResourceProvider.cs
- RegexWorker.cs
- Timer.cs
- AutomationInteropProvider.cs
- IApplicationTrustManager.cs
- SQLBinaryStorage.cs
- CodeVariableDeclarationStatement.cs
- LicenseManager.cs
- SafeNativeMethods.cs
- MatrixCamera.cs
- LinearGradientBrush.cs
- ColumnHeader.cs
- CqlParser.cs