5 interfaces inheriting from IEqualityComparer
Microsoft.Build.Framework (1)
IConstrainedEqualityComparer.cs (1)
14internal interface IConstrainedEqualityComparer<in T> : IEqualityComparer<T>
NuGet.Packaging (1)
Core\comparers\IPackageIdentityComparer.cs (1)
11public interface IPackageIdentityComparer : IEqualityComparer<PackageIdentity>, IComparer<PackageIdentity>
NuGet.Versioning (2)
IVersionComparer.cs (1)
12public interface IVersionComparer : IEqualityComparer<SemanticVersion>, IComparer<SemanticVersion>
IVersionRangeComparer.cs (1)
11public interface IVersionRangeComparer : IEqualityComparer<VersionRangeBase>
System.Private.CoreLib (1)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\IInternalStringEqualityComparer.cs (1)
12internal interface IInternalStringEqualityComparer : IEqualityComparer<string?>
418 implementations of IEqualityComparer
aspire (1)
Certificates\CertificateGeneration\MacOSCertificateManager.cs (1)
469private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
Aspire.Cli.Tests (1)
tests\Shared\Logging\LogValuesAssert.cs (1)
57private sealed class LogValueComparer : IEqualityComparer<KeyValuePair<string, object>>
Aspire.Dashboard (3)
Otlp\Model\OtlpResource.cs (2)
107private sealed class ResourceViewKeyComparer : IEqualityComparer<KeyValuePair<string, string>[]> 158internal sealed class OtlpResourceEqualityComparer : IEqualityComparer<OtlpResource>
Otlp\Storage\SqliteTelemetryRepository.Resources.cs (1)
120private sealed class ResourceViewPropertiesComparer : IEqualityComparer<KeyValuePair<string, string>[]>
Aspire.Dashboard.Components.Tests (1)
tests\Shared\Logging\LogValuesAssert.cs (1)
57private sealed class LogValueComparer : IEqualityComparer<KeyValuePair<string, object>>
Aspire.Dashboard.Tests (2)
tests\Shared\Logging\LogValuesAssert.cs (1)
57private sealed class LogValueComparer : IEqualityComparer<KeyValuePair<string, object>>
tests\Shared\Telemetry\InMemoryTelemetryRepository.cs (1)
2753private sealed class ScopeAttributesComparer : IEqualityComparer<ReadOnlyMemory<KeyValuePair<string, string>>>
Aspire.Hosting (1)
src\Shared\ResourceNameComparer.cs (1)
8internal sealed class ResourceNameComparer : IEqualityComparer<IResource?>
Aspire.Hosting.Azure.AppContainers (1)
src\Shared\ResourceNameComparer.cs (1)
8internal sealed class ResourceNameComparer : IEqualityComparer<IResource?>
Aspire.Hosting.Azure.AppService (1)
src\Shared\ResourceNameComparer.cs (1)
8internal sealed class ResourceNameComparer : IEqualityComparer<IResource?>
Aspire.Hosting.DevTunnels (1)
src\Shared\ResourceNameComparer.cs (1)
8internal sealed class ResourceNameComparer : IEqualityComparer<IResource?>
Aspire.Hosting.Docker (1)
src\Shared\ResourceNameComparer.cs (1)
8internal sealed class ResourceNameComparer : IEqualityComparer<IResource?>
Aspire.Hosting.Kubernetes (1)
src\Shared\ResourceNameComparer.cs (1)
8internal sealed class ResourceNameComparer : IEqualityComparer<IResource?>
Aspire.Hosting.Testing.Tests (1)
tests\Shared\Logging\LogValuesAssert.cs (1)
57private sealed class LogValueComparer : IEqualityComparer<KeyValuePair<string, object>>
Aspire.Hosting.TestUtilities (1)
tests\Shared\Logging\LogValuesAssert.cs (1)
57private sealed class LogValueComparer : IEqualityComparer<KeyValuePair<string, object>>
Aspire.Playground.Tests (1)
tests\Shared\Logging\LogValuesAssert.cs (1)
57private sealed class LogValueComparer : IEqualityComparer<KeyValuePair<string, object>>
dotnet (1)
Commands\Project\Convert\ProjectConvertCommand.cs (1)
578private sealed class ProjectItemComparer : IEqualityComparer<ProjectItemKey>
dotnet-dev-certs (1)
src\aspnetcore\src\Shared\CertificateGeneration\MacOSCertificateManager.cs (1)
411private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
dotnet-svcutil-lib (7)
FrameworkFork\Microsoft.Xml\Xml\Core\SecureStringHasher.cs (1)
17internal class SecureStringHasher : IEqualityComparer<String>
FrameworkFork\System.Runtime.Serialization\System\Runtime\Serialization\DataContract.cs (1)
2549internal class TypeHandleRefEqualityComparer : IEqualityComparer<TypeHandleRef>
FrameworkFork\System.ServiceModel\System\IdentityModel\Claims\ClaimComparer.cs (1)
16internal class ClaimComparer : IEqualityComparer<Claim>
FrameworkFork\System.ServiceModel\System\ServiceModel\Description\DataContractSerializerOperationGenerator.cs (1)
236private class CodeTypeReferenceComparer : IEqualityComparer<CodeTypeReference>
FrameworkFork\System.ServiceModel\System\ServiceModel\Description\ServiceContractGenerator.cs (1)
627private class MessageDescriptionComparer : IEqualityComparer<MessageDescription>
FrameworkFork\System.ServiceModel\System\ServiceModel\Dispatcher\OperationFormatter.cs (1)
899internal class QNameComparer : IEqualityComparer<QName>
FrameworkFork\System.ServiceModel\System\ServiceModel\Security\InMemoryNonceCache.cs (1)
92internal sealed class NonceKeyComparer : IEqualityComparer, System.Collections.Generic.IEqualityComparer<byte[]>
GenerateDocumentationAndConfigFiles (14)
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (1)
18bool distinguishRefFromOut) : IEqualityComparer<IParameterSymbol?>
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (1)
13internal sealed class SignatureTypeSymbolEquivalenceComparer(SymbolEquivalenceComparer symbolEquivalenceComparer) : IEqualityComparer<ITypeSymbol?>
src\7a47995420f988d7\AbstractRemoveUnnecessaryImportsService.cs (1)
15IEqualityComparer<T> where T : SyntaxNode
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
918private class PathComparer : IEqualityComparer<string?>
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ReadOnlyMemoryOfCharComparer.cs (2)
14internal sealed class ReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>> 42internal sealed class EmptyReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>>
src\roslyn\src\Dependencies\Collections\Internal\SegmentedHashSetEqualityComparer`1.cs (1)
19internal sealed class SegmentedHashSetEqualityComparer<T> : IEqualityComparer<SegmentedHashSet<T>?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (1)
838private sealed class DirectiveSyntaxEqualityComparer : IEqualityComparer<TDirectiveTriviaSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (1)
17IEqualityComparer<TSyntaxNode>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (1)
12private sealed class SymbolKeyComparer : IEqualityComparer<SymbolKey>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ImmutableArrayComparer.cs (1)
13internal sealed class ImmutableArrayComparer<T> : IEqualityComparer<ImmutableArray<T>>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
13private sealed class SimpleNameAssemblyComparer : IEqualityComparer<IAssemblySymbol?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (1)
41internal sealed partial class SymbolEquivalenceComparer : IEqualityComparer<ISymbol?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\FindSymbols\LinkedFileReferenceLocationEqualityComparer.cs (1)
14internal sealed class LinkedFileReferenceLocationEqualityComparer : IEqualityComparer<ReferenceLocation>
ILAssembler (2)
EntityRegistry.cs (2)
30private sealed class BlobBuilderContentEqualityComparer : IEqualityComparer<BlobBuilder> 58private sealed class MethodSpecEqualityComparer : IEqualityComparer<(EntityBase, BlobBuilder)>
ILCompiler.Compiler (4)
Compiler\DependencyAnalysis\NodeFactory.NativeLayout.cs (1)
282private sealed class UIntSequenceComparer : IEqualityComparer<List<uint>>
Compiler\MethodBodyDeduplicator.cs (1)
96private sealed class MethodInternComparer : IEqualityComparer<MethodInternKey>
Compiler\ObjectWriter\UnixObjectWriter.Aot.cs (1)
119private sealed class LsdaComparer : IEqualityComparer<INodeWithCodeInfo>
src\runtime\src\coreclr\tools\Common\Pgo\PgoFormat.cs (1)
508private sealed class PgoSchemaMergeComparer : IComparer<PgoSchemaElem>, IEqualityComparer<PgoSchemaElem>
ILCompiler.DependencyAnalysisFramework (1)
FullGraphLogStrategy.cs (1)
83private sealed class MarkDataEqualityComparer : IEqualityComparer<MarkData>
ILCompiler.MetadataTransform (3)
ILCompiler\Metadata\Transform.Scope.cs (1)
130private sealed class SimpleAssemblyNameComparer : IEqualityComparer<AssemblyNameInfo>
Internal\Metadata\NativeFormat\Writer\NativeMetadataWriter.cs (2)
1013public sealed class SingleComparer : IEqualityComparer<float> 1021public sealed class DoubleComparer : IEqualityComparer<double>
ILCompiler.ReadyToRun (6)
Compiler\DependencyAnalysis\ReadyToRun\ByteArrayComparer.cs (1)
8internal sealed class ByteArrayComparer : IEqualityComparer<byte[]>
Compiler\DependencyAnalysis\ReadyToRun\CopiedMethodILDeduplicator.cs (1)
75private sealed class InternComparer : IEqualityComparer<InternKey>
Compiler\DependencyAnalysis\ReadyToRun\MethodGCInfoNode.cs (1)
248class MethodGCInfoNodeDeduplicatingComparer : IEqualityComparer<MethodGCInfoNode>
src\runtime\src\coreclr\tools\Common\JitInterface\IJitHashableOnly.cs (2)
10public class JitObjectComparer : IEqualityComparer<object> 21public class JitObjectComparer<T> : IEqualityComparer<T> where T:class
src\runtime\src\coreclr\tools\Common\Pgo\PgoFormat.cs (1)
508private sealed class PgoSchemaMergeComparer : IComparer<PgoSchemaElem>, IEqualityComparer<PgoSchemaElem>
ILCompiler.RyuJit (2)
src\runtime\src\coreclr\tools\Common\JitInterface\IJitHashableOnly.cs (2)
10public class JitObjectComparer : IEqualityComparer<object> 21public class JitObjectComparer<T> : IEqualityComparer<T> where T:class
Microsoft.AspNetCore.App.Analyzers (1)
Infrastructure\AmbiguousRoutePatternComparer.cs (1)
15internal sealed class AmbiguousRoutePatternComparer : IEqualityComparer<RoutePatternTree>
Microsoft.AspNetCore.Components (4)
Rendering\SimplifiedStringHashComparer.cs (1)
16internal sealed class SimplifiedStringHashComparer : IEqualityComparer<string>
Routing\RouteTableFactory.cs (1)
300private sealed class InboundRouteEntryAmbiguityEqualityComparer : IEqualityComparer<InboundRouteEntry>
src\aspnetcore\src\Components\Shared\src\QueryParameterNameComparer.cs (1)
8internal sealed class QueryParameterNameComparer : IComparer<ReadOnlyMemory<char>>, IEqualityComparer<ReadOnlyMemory<char>>
src\aspnetcore\src\Http\Routing\src\RouteValueEqualityComparer.cs (1)
22internal class RouteValueEqualityComparer : IEqualityComparer<object?>
Microsoft.AspNetCore.Components.QuickGrid (1)
src\aspnetcore\src\Components\Shared\src\QueryParameterNameComparer.cs (1)
8internal sealed class QueryParameterNameComparer : IComparer<ReadOnlyMemory<char>>, IEqualityComparer<ReadOnlyMemory<char>>
Microsoft.AspNetCore.Components.Web (1)
Routing\NavLink.cs (1)
287private class CaseInsensitiveCharComparer : IEqualityComparer<char>
Microsoft.AspNetCore.Components.WebView (1)
src\aspnetcore\src\Shared\StaticWebAssets\ManifestStaticWebAssetFileProvider.cs (1)
301private sealed class FileNameComparer : IEqualityComparer<IFileInfo>
Microsoft.AspNetCore.DeveloperCertificates.XPlat (1)
src\aspnetcore\src\Shared\CertificateGeneration\MacOSCertificateManager.cs (1)
411private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
Microsoft.AspNetCore.Hosting (1)
src\aspnetcore\src\Shared\StaticWebAssets\ManifestStaticWebAssetFileProvider.cs (1)
301private sealed class FileNameComparer : IEqualityComparer<IFileInfo>
Microsoft.AspNetCore.Http.RequestDelegateGenerator (2)
StaticRouteHandlerModel\EndpointDelegateComparer.cs (1)
8internal sealed class EndpointDelegateComparer : IEqualityComparer<Endpoint>
StaticRouteHandlerModel\EndpointHttpMethodComparer.cs (1)
9internal sealed class EndpointHttpMethodComparer : IEqualityComparer<Endpoint>
Microsoft.AspNetCore.InternalTesting (1)
Logging\LogValuesAssert.cs (1)
59private sealed class LogValueComparer : IEqualityComparer<KeyValuePair<string, object>>
Microsoft.AspNetCore.Mvc.ApiExplorer (1)
DefaultApiDescriptionProvider.cs (1)
723private sealed class PropertyKeyEqualityComparer : IEqualityComparer<PropertyKey>
Microsoft.AspNetCore.Mvc.Core (2)
Infrastructure\StringArrayComparer.cs (1)
6internal sealed class StringArrayComparer : IEqualityComparer<string[]>
Routing\AttributeRoute.cs (1)
246private sealed class RouteInfoEqualityComparer : IEqualityComparer<RouteInfo>
Microsoft.AspNetCore.Mvc.ViewFeatures (2)
LambdaExpressionComparer.cs (1)
10internal sealed class LambdaExpressionComparer : IEqualityComparer<LambdaExpression>
MemberExpressionCacheKeyComparer.cs (1)
6internal sealed class MemberExpressionCacheKeyComparer : IEqualityComparer<MemberExpressionCacheKey>
Microsoft.AspNetCore.OpenApi.SourceGenerators (1)
Helpers\AddOpenApiInvocationComparer.cs (1)
8internal class AddOpenApiInvocationComparer : IEqualityComparer<AddOpenApiInvocation>
Microsoft.AspNetCore.RateLimiting (1)
DefaultKeyTypeEqualityComparer.cs (1)
8internal sealed class DefaultKeyTypeEqualityComparer : IEqualityComparer<DefaultKeyType>
Microsoft.AspNetCore.Razor.Utilities.Shared (1)
src\roslyn\src\Razor\src\Shared\Microsoft.AspNetCore.Razor.SharedUtilities\Utilities\ReferenceEqualityComparer.cs (1)
9internal sealed class ReferenceEqualityComparer<T> : IEqualityComparer<T>
Microsoft.AspNetCore.Routing (3)
DecisionTree\DecisionCriterionValueEqualityComparer.cs (1)
6internal sealed class DecisionCriterionValueEqualityComparer : IEqualityComparer<DecisionCriterionValue>
Matching\EndpointComparer.cs (1)
23internal sealed class EndpointComparer : IComparer<Endpoint>, IEqualityComparer<Endpoint>
RouteValueEqualityComparer.cs (1)
20public class RouteValueEqualityComparer : IEqualityComparer<object?>
Microsoft.AspNetCore.Server.Kestrel.Core (1)
src\aspnetcore\src\Shared\CertificateGeneration\MacOSCertificateManager.cs (1)
411private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
Microsoft.Build (8)
BackEnd\Components\ProjectCache\ProjectCacheDescriptorEqualityComparer.cs (1)
10internal sealed class ProjectCacheDescriptorEqualityComparer : IEqualityComparer<ProjectCacheDescriptor>
BackEnd\Components\SdkResolution\SdkResolverLoader.cs (1)
176private class DirInfoNameComparer : IEqualityComparer<DirectoryInfo>
Instance\ProjectItemInstance.cs (1)
2547internal class ProjectItemInstanceEqualityComparer : IEqualityComparer<ProjectItemInstance>
Instance\TaskRegistry.cs (1)
809internal class RegisteredTaskIdentityComparer : IEqualityComparer<RegisteredTaskIdentity>
Logging\EvaluationLocationIdAgnosticComparer.cs (1)
16internal class EvaluationLocationIdAgnosticComparer : IEqualityComparer<EvaluationLocation>
Logging\ParallelLogger\ParallelLoggerHelpers.cs (2)
215internal class ComparerContextNodeId<T> : IEqualityComparer<T> 244internal class ComparerContextNodeIdTargetId<T> : IEqualityComparer<T>
src\697a1c9088572269\SegmentedHashSetEqualityComparer`1.cs (1)
19internal sealed class SegmentedHashSetEqualityComparer<T> : IEqualityComparer<SegmentedHashSet<T>?>
Microsoft.Build.Framework (2)
MSBuildNameIgnoreCaseComparer.cs (1)
20internal class MSBuildNameIgnoreCaseComparer : IConstrainedEqualityComparer<string>, IEqualityComparer<string>
Utilities\AssemblyNameComparer.cs (1)
16internal sealed class AssemblyNameComparer : IComparer, IEqualityComparer, IEqualityComparer<AssemblyNameExtension>
Microsoft.Build.NuGetSdkResolver (1)
FileSystemInfoFullNameEqualityComparer.cs (1)
15internal sealed class FileSystemInfoFullNameEqualityComparer : IEqualityComparer<FileSystemInfo>
Microsoft.CodeAnalysis (28)
Collections\ByteSequenceComparer.cs (2)
16internal sealed class ByteSequenceComparer : IEqualityComparer<byte[]>, IEqualityComparer<ImmutableArray<byte>>
CommandLine\AnalyzerConfigSet.cs (1)
64private sealed class SequenceEqualComparer : IEqualityComparer<List<Section>>
CommandLine\SarifDiagnosticComparer.cs (1)
29internal sealed class SarifDiagnosticComparer : IEqualityComparer<DiagnosticDescriptor>
Diagnostic\CommonDiagnosticComparer.cs (1)
10internal sealed class CommonDiagnosticComparer : IEqualityComparer<Diagnostic>
DiagnosticAnalyzer\AnalyzerFileReference.cs (1)
427private class ExtTypeComparer : IEqualityComparer<TExtension>
FileSystem\PathUtilities.cs (1)
918private class PathComparer : IEqualityComparer<string?>
InternalUtilities\CharMemoryEqualityComparer.cs (1)
13internal sealed class CharMemoryEqualityComparer : IEqualityComparer<ReadOnlyMemory<char>>
InternalUtilities\ReadOnlyMemoryOfCharComparer.cs (2)
14internal sealed class ReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>> 42internal sealed class EmptyReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>>
InternalUtilities\StringOrdinalComparer.cs (1)
17internal sealed class StringOrdinalComparer : IEqualityComparer<string>
MetadataReader\PEModule.cs (1)
792private class NamespaceHandleEqualityComparer : IEqualityComparer<NamespaceDefinitionHandle>
PEWriter\MemberRefComparer.cs (1)
11internal sealed class MemberRefComparer : IEqualityComparer<ITypeMemberReference>
PEWriter\MetadataWriter.cs (1)
4380private class ByteSequenceBoolTupleComparer : IEqualityComparer<(ImmutableArray<byte>, bool)>
PEWriter\MetadataWriter.PortablePdb.cs (1)
33internal sealed class ImportScopeEqualityComparer : IEqualityComparer<IImportScope>
PEWriter\MethodSpecComparer.cs (1)
11internal sealed class MethodSpecComparer : IEqualityComparer<IGenericMethodInstanceReference>
PEWriter\SymbolEquivalentEqualityComparer.cs (2)
14internal sealed class SymbolEquivalentEqualityComparer : IEqualityComparer<IReference?>, IEqualityComparer<INamespace?>
PEWriter\TypeSpecComparer.cs (1)
10internal sealed class TypeSpecComparer : IEqualityComparer<ITypeReference>
ReferenceManager\CommonReferenceManager.Resolution.cs (1)
571internal sealed class MetadataReferenceEqualityComparer : IEqualityComparer<MetadataReference>
SourceGeneration\UserFunction.cs (1)
25internal sealed class WrappedUserComparer<T> : IEqualityComparer<T>
src\roslyn\src\Dependencies\Collections\Internal\SegmentedHashSetEqualityComparer`1.cs (1)
19internal sealed class SegmentedHashSetEqualityComparer<T> : IEqualityComparer<SegmentedHashSet<T>?>
Symbols\Attributes\CommonAttributeDataComparer.cs (3)
20internal sealed class CommonAttributeDataComparer : IEqualityComparer<AttributeData> 104private class TypedConstantComparer : IEqualityComparer<TypedConstant> 135private class NamedArgumentComparer : IEqualityComparer<KeyValuePair<string, TypedConstant>>
Symbols\SymbolEqualityComparer.cs (1)
14public sealed class SymbolEqualityComparer : IEqualityComparer<ISymbol?>
Syntax\SyntaxTreeComparer.cs (1)
12internal class SyntaxTreeComparer : IEqualityComparer<SyntaxTree>
Text\SourceTextComparer.cs (1)
10internal class SourceTextComparer : IEqualityComparer<SourceText?>
Microsoft.CodeAnalysis.Analyzers (15)
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (1)
18bool distinguishRefFromOut) : IEqualityComparer<IParameterSymbol?>
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (1)
13internal sealed class SignatureTypeSymbolEquivalenceComparer(SymbolEquivalenceComparer symbolEquivalenceComparer) : IEqualityComparer<ITypeSymbol?>
src\7a47995420f988d7\AbstractRemoveUnnecessaryImportsService.cs (1)
15IEqualityComparer<T> where T : SyntaxNode
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
918private class PathComparer : IEqualityComparer<string?>
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ReadOnlyMemoryOfCharComparer.cs (2)
14internal sealed class ReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>> 42internal sealed class EmptyReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>>
src\roslyn\src\Dependencies\Collections\Internal\SegmentedHashSetEqualityComparer`1.cs (1)
19internal sealed class SegmentedHashSetEqualityComparer<T> : IEqualityComparer<SegmentedHashSet<T>?>
src\roslyn\src\Dependencies\Contracts\ReferenceEqualityComparer.cs (1)
19internal sealed class ReferenceEqualityComparer : IEqualityComparer<object?>, IEqualityComparer
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (1)
838private sealed class DirectiveSyntaxEqualityComparer : IEqualityComparer<TDirectiveTriviaSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (1)
17IEqualityComparer<TSyntaxNode>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (1)
12private sealed class SymbolKeyComparer : IEqualityComparer<SymbolKey>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ImmutableArrayComparer.cs (1)
13internal sealed class ImmutableArrayComparer<T> : IEqualityComparer<ImmutableArray<T>>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
13private sealed class SimpleNameAssemblyComparer : IEqualityComparer<IAssemblySymbol?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (1)
41internal sealed partial class SymbolEquivalenceComparer : IEqualityComparer<ISymbol?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\FindSymbols\LinkedFileReferenceLocationEqualityComparer.cs (1)
14internal sealed class LinkedFileReferenceLocationEqualityComparer : IEqualityComparer<ReferenceLocation>
Microsoft.CodeAnalysis.AnalyzerUtilities (13)
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (1)
18bool distinguishRefFromOut) : IEqualityComparer<IParameterSymbol?>
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (1)
13internal sealed class SignatureTypeSymbolEquivalenceComparer(SymbolEquivalenceComparer symbolEquivalenceComparer) : IEqualityComparer<ITypeSymbol?>
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
918private class PathComparer : IEqualityComparer<string?>
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ReadOnlyMemoryOfCharComparer.cs (2)
14internal sealed class ReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>> 42internal sealed class EmptyReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>>
src\roslyn\src\Dependencies\Collections\Internal\SegmentedHashSetEqualityComparer`1.cs (1)
19internal sealed class SegmentedHashSetEqualityComparer<T> : IEqualityComparer<SegmentedHashSet<T>?>
src\roslyn\src\Dependencies\Contracts\ReferenceEqualityComparer.cs (1)
19internal sealed class ReferenceEqualityComparer : IEqualityComparer<object?>, IEqualityComparer
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (1)
838private sealed class DirectiveSyntaxEqualityComparer : IEqualityComparer<TDirectiveTriviaSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (1)
17IEqualityComparer<TSyntaxNode>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (1)
12private sealed class SymbolKeyComparer : IEqualityComparer<SymbolKey>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ImmutableArrayComparer.cs (1)
13internal sealed class ImmutableArrayComparer<T> : IEqualityComparer<ImmutableArray<T>>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
13private sealed class SimpleNameAssemblyComparer : IEqualityComparer<IAssemblySymbol?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (1)
41internal sealed partial class SymbolEquivalenceComparer : IEqualityComparer<ISymbol?>
Microsoft.CodeAnalysis.CodeStyle (14)
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (1)
18bool distinguishRefFromOut) : IEqualityComparer<IParameterSymbol?>
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (1)
13internal sealed class SignatureTypeSymbolEquivalenceComparer(SymbolEquivalenceComparer symbolEquivalenceComparer) : IEqualityComparer<ITypeSymbol?>
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
100internal sealed class OriginalDefinitionSymbolEqualityComparer : IEqualityComparer<ISymbol>
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
918private class PathComparer : IEqualityComparer<string?>
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ReadOnlyMemoryOfCharComparer.cs (2)
14internal sealed class ReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>> 42internal sealed class EmptyReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>>
src\roslyn\src\Dependencies\Collections\Internal\SegmentedHashSetEqualityComparer`1.cs (1)
19internal sealed class SegmentedHashSetEqualityComparer<T> : IEqualityComparer<SegmentedHashSet<T>?>
src\roslyn\src\Dependencies\Contracts\ReferenceEqualityComparer.cs (1)
19internal sealed class ReferenceEqualityComparer : IEqualityComparer<object?>, IEqualityComparer
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (1)
838private sealed class DirectiveSyntaxEqualityComparer : IEqualityComparer<TDirectiveTriviaSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (1)
17IEqualityComparer<TSyntaxNode>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (1)
12private sealed class SymbolKeyComparer : IEqualityComparer<SymbolKey>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ImmutableArrayComparer.cs (1)
13internal sealed class ImmutableArrayComparer<T> : IEqualityComparer<ImmutableArray<T>>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
13private sealed class SimpleNameAssemblyComparer : IEqualityComparer<IAssemblySymbol?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (1)
41internal sealed partial class SymbolEquivalenceComparer : IEqualityComparer<ISymbol?>
Microsoft.CodeAnalysis.CodeStyle.Fixes (2)
src\7a47995420f988d7\AbstractRemoveUnnecessaryImportsService.cs (1)
15IEqualityComparer<T> where T : SyntaxNode
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\FindSymbols\LinkedFileReferenceLocationEqualityComparer.cs (1)
14internal sealed class LinkedFileReferenceLocationEqualityComparer : IEqualityComparer<ReferenceLocation>
Microsoft.CodeAnalysis.CSharp (14)
Binder\Binder_Operators.cs (1)
3952private class PairedOperatorComparer : IEqualityComparer<MethodSymbol>
Binder\DecisionDagBuilder.cs (1)
3119private sealed class DagStateEquivalence : IEqualityComparer<DagState>
Binder\Imports.cs (1)
211private class UsingTargetComparer : IEqualityComparer<NamespaceOrTypeAndUsingDirective>
Binder\Semantics\Operators\UnaryOperatorOverloadResolution.cs (1)
242internal class PairedExtensionOperatorSignatureComparer : IEqualityComparer<MethodSymbol>
BoundTree\UnboundLambda.cs (1)
1482private sealed class BindingCacheComparer : IEqualityComparer<(NamedTypeSymbol Type, bool IsExpressionTree)>
Compilation\CSharpCompilation.cs (1)
2534private sealed class InterceptorKeyComparer : IEqualityComparer<(ImmutableArray<byte> ContentHash, int Position)>
FlowAnalysis\NullableWalker.cs (2)
14383private sealed class NullabilityInfoTypeComparer : IEqualityComparer<(NullabilityInfo info, TypeSymbol? type)> 14399private sealed class ExpressionAndSymbolEqualityComparer : IEqualityComparer<(BoundNode? expr, Symbol symbol)>
Lowering\LocalRewriter\DelegateCacheContainer.cs (1)
93private sealed class CLRSignatureComparer : IEqualityComparer<(TypeSymbol? constrainedToTypeOpt, TypeSymbol delegateType, MethodSymbol targetMethod)>
Symbols\ConversionSignatureComparer.cs (1)
12internal sealed class ConversionSignatureComparer : IEqualityComparer<MethodSymbol>
Symbols\MemberSignatureComparer.cs (1)
34internal sealed class MemberSignatureComparer : IEqualityComparer<Symbol>
Symbols\TypeSymbol.cs (1)
2382protected class ExplicitInterfaceImplementationTargetMemberEqualityComparer : IEqualityComparer<Symbol>
Syntax\SyntaxKindEqualityComparer.cs (1)
11private sealed class SyntaxKindEqualityComparer : IEqualityComparer<SyntaxKind>
Utilities\ContentHashComparer.cs (1)
13internal sealed class ContentHashComparer : IEqualityComparer<ReadOnlyMemory<byte>>
Microsoft.CodeAnalysis.CSharp.Features (5)
Completion\CompletionProviders\FunctionPointerUnmanagedCallingConventionCompletionProvider.cs (1)
125private sealed class CompletionItemComparer : IEqualityComparer<CompletionItem>
Completion\CompletionProviders\NamedParameterCompletionProvider.cs (1)
32internal sealed partial class NamedParameterCompletionProvider() : LSPCompletionProvider, IEqualityComparer<IParameterSymbol>
ConvertToExtension\ExtensionMethodEqualityComparer.cs (3)
18IEqualityComparer<AttributeData>, 19IEqualityComparer<ITypeParameterSymbol>, 20IEqualityComparer<ExtensionMethodInfo>
Microsoft.CodeAnalysis.CSharp.Workspaces (2)
Simplification\Simplifiers\ExpressionSimplifier.CandidateSymbolEqualityComparer.cs (1)
16private sealed class CandidateSymbolEqualityComparer : IEqualityComparer<ISymbol>
SyncedSource\FileBasedPrograms\FileLevelDirectiveHelpers.cs (1)
946internal sealed class NamedDirectiveComparer : IEqualityComparer<CSharpDirective.Named>
Microsoft.CodeAnalysis.Extensions.Package (6)
src\roslyn\src\Dependencies\Collections\Internal\SegmentedHashSetEqualityComparer`1.cs (1)
19internal sealed class SegmentedHashSetEqualityComparer<T> : IEqualityComparer<SegmentedHashSet<T>?>
src\roslyn\src\Dependencies\Contracts\ReferenceEqualityComparer.cs (1)
19internal sealed class ReferenceEqualityComparer : IEqualityComparer<object?>, IEqualityComparer
Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
13private sealed class SimpleNameAssemblyComparer : IEqualityComparer<IAssemblySymbol?>
Symbols\SymbolEquivalenceComparer.cs (1)
41internal sealed partial class SymbolEquivalenceComparer : IEqualityComparer<ISymbol?>
Symbols\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (1)
18bool distinguishRefFromOut) : IEqualityComparer<IParameterSymbol?>
Symbols\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (1)
13internal sealed class SignatureTypeSymbolEquivalenceComparer(SymbolEquivalenceComparer symbolEquivalenceComparer) : IEqualityComparer<ITypeSymbol?>
Microsoft.CodeAnalysis.Features (17)
AddImport\AbstractAddImportFeatureService.cs (1)
32: IAddImportFeatureService, IEqualityComparer<PortableExecutableReference>
CodeLens\LocationComparer.cs (1)
13internal sealed class LocationComparer : IEqualityComparer<Location>
Completion\CompletionService.ProviderManager.cs (1)
26private sealed class ProviderManager : IEqualityComparer<ImmutableHashSet<string>>
Completion\Providers\AbstractSymbolCompletionProvider.cs (1)
248private sealed class SymbolReferenceEquivalenceComparer : IEqualityComparer<SymbolAndSelectionInfo>
Completion\Providers\UnionCompletionItemComparer.cs (1)
11internal sealed class UnionCompletionItemComparer : IEqualityComparer<CompletionItem>
Diagnostics\Service\ChecksumAndAnalyzersEqualityComparer.cs (1)
14: IEqualityComparer<ImmutableArray<DiagnosticAnalyzer>>
Diagnostics\Service\DiagnosticAnalyzerComparer.cs (1)
14private sealed class DiagnosticAnalyzerComparer : IEqualityComparer<DiagnosticAnalyzer>
Diagnostics\Service\DocumentAnalysisExecutor_Helpers.cs (1)
215private sealed class DiagnosticComparer : IEqualityComparer<Diagnostic?>
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (4)
2515private sealed class AssemblyEqualityComparer : IEqualityComparer<IAssemblySymbol?> 4231private sealed class SemanticEditInfoComparer : IEqualityComparer<SemanticEditInfo> 6970private sealed class TypedConstantComparer : IEqualityComparer<TypedConstant> 6989private sealed class NamedArgumentComparer : IEqualityComparer<KeyValuePair<string, TypedConstant>>
EditAndContinue\RunningProjectOptions.cs (1)
64private sealed class PathAndTfmComparer : IEqualityComparer<(string path, string tfm)>
NavigateTo\NavigateToSearchResultComparer.cs (1)
19internal sealed class NavigateToSearchResultComparer : IEqualityComparer<INavigateToSearchResult>
ReplacePropertyWithMethods\ReplacePropertyWithMethodsCodeRefactoringProvider.cs (1)
33IEqualityComparer<(IPropertySymbol property, ReferenceLocation location)>
Shared\Utilities\LinkedFilesSymbolEquivalenceComparer.cs (1)
14internal sealed class LinkedFilesSymbolEquivalenceComparer : IEqualityComparer<ISymbol>
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
100internal sealed class OriginalDefinitionSymbolEqualityComparer : IEqualityComparer<ISymbol>
Microsoft.CodeAnalysis.NetAnalyzers (2)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidDuplicateElementInitialization.cs (1)
100private sealed class ConstantArgumentEqualityComparer : IEqualityComparer<ImmutableArray<object>>
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\ReferenceEqualityComparer.cs (1)
12internal class ReferenceEqualityComparer : IEqualityComparer<object?>
Microsoft.CodeAnalysis.Razor.Compiler (6)
CSharp\AssemblyIdentityEqualityComparer.cs (1)
12internal abstract class AssemblyIdentityEqualityComparer : IEqualityComparer<AssemblyIdentity>
Language\Components\TypeNameHelper.NameComparer.cs (1)
12private sealed class NameComparer : IEqualityComparer<ReadOnlyMemory<char>>
Language\DirectiveDescriptorComparer.cs (1)
13internal class DirectiveDescriptorComparer : IEqualityComparer<DirectiveDescriptor>
Language\DirectiveTokenDescriptorComparer.cs (1)
12internal class DirectiveTokenDescriptorComparer : IEqualityComparer<DirectiveTokenDescriptor>
Language\ReadOnlyMemoryOfCharComparer.cs (1)
11internal sealed class ReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>>
SourceGenerators\IncrementalValueProviderExtensions.cs (1)
72internal sealed class LambdaComparer<T> : IEqualityComparer<T>
Microsoft.CodeAnalysis.ResxSourceGenerator (14)
AbstractResxGenerator.cs (1)
322private sealed class ImmutableDictionaryEqualityComparer<TKey, TValue> : IEqualityComparer<ImmutableDictionary<TKey, TValue>?>
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (1)
18bool distinguishRefFromOut) : IEqualityComparer<IParameterSymbol?>
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (1)
13internal sealed class SignatureTypeSymbolEquivalenceComparer(SymbolEquivalenceComparer symbolEquivalenceComparer) : IEqualityComparer<ITypeSymbol?>
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
918private class PathComparer : IEqualityComparer<string?>
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ReadOnlyMemoryOfCharComparer.cs (2)
14internal sealed class ReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>> 42internal sealed class EmptyReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>>
src\roslyn\src\Dependencies\Collections\Internal\SegmentedHashSetEqualityComparer`1.cs (1)
19internal sealed class SegmentedHashSetEqualityComparer<T> : IEqualityComparer<SegmentedHashSet<T>?>
src\roslyn\src\Dependencies\Contracts\ReferenceEqualityComparer.cs (1)
19internal sealed class ReferenceEqualityComparer : IEqualityComparer<object?>, IEqualityComparer
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (1)
838private sealed class DirectiveSyntaxEqualityComparer : IEqualityComparer<TDirectiveTriviaSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (1)
17IEqualityComparer<TSyntaxNode>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (1)
12private sealed class SymbolKeyComparer : IEqualityComparer<SymbolKey>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ImmutableArrayComparer.cs (1)
13internal sealed class ImmutableArrayComparer<T> : IEqualityComparer<ImmutableArray<T>>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
13private sealed class SimpleNameAssemblyComparer : IEqualityComparer<IAssemblySymbol?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (1)
41internal sealed partial class SymbolEquivalenceComparer : IEqualityComparer<ISymbol?>
Microsoft.CodeAnalysis.VisualBasic (6)
Binding\Binder_XmlLiterals.vb (1)
584Implements IEqualityComparer(Of XmlName)
Declarations\SingleNamespaceDeclaration.vb (1)
60Implements IEqualityComparer(Of SingleNamespaceDeclaration)
Symbols\EventSignatureComparer.vb (1)
19Implements IEqualityComparer(Of EventSymbol)
Symbols\MethodSignatureComparer.vb (1)
98Implements IEqualityComparer(Of MethodSymbol)
Symbols\PropertySignatureComparer.vb (1)
15Implements IEqualityComparer(Of PropertySymbol)
Symbols\TypeSymbol.vb (1)
777Implements IEqualityComparer(Of Symbol)
Microsoft.CodeAnalysis.Workspaces (19)
FindSymbols\FindReferences\MetadataUnifyingEquivalenceComparer.cs (1)
11internal sealed class MetadataUnifyingEquivalenceComparer : IEqualityComparer<ISymbol>
Rename\ConflictEngine\DeclarationConflictHelpers.cs (1)
79private sealed class ConflictingSignatureComparer : IEqualityComparer<ImmutableArray<ParameterSignature>>
Shared\Extensions\INamespaceSymbolExtensions.Comparer.cs (1)
13private sealed class Comparer : IEqualityComparer<INamespaceSymbol?>
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (1)
18bool distinguishRefFromOut) : IEqualityComparer<IParameterSymbol?>
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (1)
13internal sealed class SignatureTypeSymbolEquivalenceComparer(SymbolEquivalenceComparer symbolEquivalenceComparer) : IEqualityComparer<ITypeSymbol?>
src\7a47995420f988d7\AbstractRemoveUnnecessaryImportsService.cs (1)
15IEqualityComparer<T> where T : SyntaxNode
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
918private class PathComparer : IEqualityComparer<string?>
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ReadOnlyMemoryOfCharComparer.cs (2)
14internal sealed class ReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>> 42internal sealed class EmptyReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>>
src\roslyn\src\Dependencies\Collections\Internal\SegmentedHashSetEqualityComparer`1.cs (1)
19internal sealed class SegmentedHashSetEqualityComparer<T> : IEqualityComparer<SegmentedHashSet<T>?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (1)
838private sealed class DirectiveSyntaxEqualityComparer : IEqualityComparer<TDirectiveTriviaSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (1)
17IEqualityComparer<TSyntaxNode>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (1)
12private sealed class SymbolKeyComparer : IEqualityComparer<SymbolKey>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ImmutableArrayComparer.cs (1)
13internal sealed class ImmutableArrayComparer<T> : IEqualityComparer<ImmutableArray<T>>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
13private sealed class SimpleNameAssemblyComparer : IEqualityComparer<IAssemblySymbol?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (1)
41internal sealed partial class SymbolEquivalenceComparer : IEqualityComparer<ISymbol?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\FindSymbols\LinkedFileReferenceLocationEqualityComparer.cs (1)
14internal sealed class LinkedFileReferenceLocationEqualityComparer : IEqualityComparer<ReferenceLocation>
Workspace\Host\PersistentStorage\DocumentKey.cs (1)
19internal readonly struct DocumentKey(ProjectKey project, DocumentId id, string? filePath, string name) : IEqualityComparer<DocumentKey>, IEquatable<DocumentKey>
Workspace\Solution\SolutionState.CachingFilePathComparer.cs (1)
26private sealed class CachingFilePathComparer : IEqualityComparer<string>
Microsoft.CodeAnalysis.Workspaces.MSBuild (1)
MSBuild\MSBuildProjectLoader.Worker.AnalyzerReferencePathComparer.cs (1)
15private sealed class AnalyzerReferencePathComparer : IEqualityComparer<AnalyzerReference?>
Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost (1)
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
918private class PathComparer : IEqualityComparer<string?>
Microsoft.CSharp (1)
Microsoft\CSharp\RuntimeBinder\BinderEquivalence.cs (1)
55internal sealed class BinderEqualityComparer : IEqualityComparer<ICSharpBinder>
Microsoft.DotNet.ApiCompatibility (4)
Comparing\AttributeDataEqualityComparer.cs (1)
13IEqualityComparer<TypedConstant> typedConstantEqualityComparer) : IEqualityComparer<AttributeData>
Comparing\NamedArgumentComparer.cs (1)
12public sealed class NamedArgumentComparer(IEqualityComparer<TypedConstant> typedConstantEqualityComparer) : IEqualityComparer<KeyValuePair<string, TypedConstant>>
Comparing\SymbolEqualityComparer.cs (1)
13public class SymbolEqualityComparer : IEqualityComparer<ISymbol>
Comparing\TypedConstantEqualityComparer.cs (1)
12public sealed class TypedConstantEqualityComparer(IEqualityComparer<ISymbol> symbolEqualityComparer) : IEqualityComparer<TypedConstant>
Microsoft.DotNet.PackageValidation (1)
ContentItemEqualityComparer.cs (1)
8internal class ContentItemEqualityComparer : IEqualityComparer<ContentItem>
Microsoft.DotNet.ProjectTools (1)
src\sdk\src\Cli\Microsoft.DotNet.FileBasedPrograms\FileLevelDirectiveHelpers.cs (1)
946internal sealed class NamedDirectiveComparer : IEqualityComparer<CSharpDirective.Named>
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (7)
ScenarioRunResultTests.cs (7)
409private class ChatMessageComparer : IEqualityComparer<ChatMessage> 420private class ChatResponseComparer : IEqualityComparer<ChatResponse> 433private class InterpretationComparer : IEqualityComparer<EvaluationMetricInterpretation> 444private class ContextComparer : IEqualityComparer<EvaluationContext> 472private class AIContentComparer : IEqualityComparer<AIContent> 495private class DiagnosticComparer : IEqualityComparer<EvaluationDiagnostic> 506private class ChatTurnDetailsComparer : IEqualityComparer<ChatTurnDetails>
Microsoft.Extensions.AI.OpenAI (1)
OpenAIAssistantsChatClient.cs (1)
612private sealed class ToolDefinitionNameEqualityComparer : IEqualityComparer<ToolDefinition>
Microsoft.Extensions.AI.Tests (1)
ChatRouting\SemanticRoutingChatClientTests.cs (1)
277private sealed class ChatClientReferenceComparer : IEqualityComparer<IChatClient>
Microsoft.Extensions.DependencyModel (1)
DependencyContext.cs (1)
82private sealed class LibraryMergeEqualityComparer<T> : IEqualityComparer<T> where T : Library
Microsoft.Extensions.Diagnostics.ResourceMonitoring (1)
ByteArrayEqualityComparer.cs (1)
9internal sealed class ByteArrayEqualityComparer : IEqualityComparer<byte[]>
Microsoft.Extensions.Features (1)
FeatureCollection.cs (1)
146private sealed class KeyComparer : IEqualityComparer<KeyValuePair<Type, object>>
Microsoft.Extensions.Http.Resilience (1)
Internal\HttpKey.cs (1)
14private sealed class BuilderEqualityComparer : IEqualityComparer<HttpKey>
Microsoft.Extensions.Primitives (1)
StringSegmentComparer.cs (1)
12public class StringSegmentComparer : IComparer<StringSegment>, IEqualityComparer<StringSegment>
Microsoft.Extensions.Telemetry (1)
Buffering\StringifyComprarer.cs (1)
9internal sealed class StringifyComprarer : IEqualityComparer<KeyValuePair<string, object?>>
Microsoft.Extensions.Validation.ValidationsGenerator (2)
Extensions\IncrementalValuesProviderExtensions.cs (1)
92private sealed class ImmutableArrayEqualityComparer<T> : IEqualityComparer<ImmutableArray<T>>
Models\ValidatableTypeComparer.cs (1)
9internal sealed class ValidatableTypeComparer : IEqualityComparer<ValidatableType?>
Microsoft.Interop.ComInterfaceGenerator (3)
ComInterfaceInfo.cs (1)
180internal sealed class EqualityComparerForExternalIfaces : IEqualityComparer<(ComInterfaceInfo InterfaceInfo, INamedTypeSymbol Symbol)>
Comparers.cs (2)
25internal sealed class ImmutableArraySequenceEqualComparer<T> : IEqualityComparer<ImmutableArray<T>> 49internal sealed class CustomValueTupleElementComparer<T, U> : IEqualityComparer<(T, U)>
Microsoft.Interop.JavaScript.JSImportGenerator (1)
Comparers.cs (1)
21internal sealed class CustomValueTupleElementComparer<T, U, V> : IEqualityComparer<(T, U, V)>
Microsoft.Interop.LibraryImportGenerator (2)
Comparers.cs (2)
17internal sealed class ImmutableArraySequenceEqualComparer<T> : IEqualityComparer<ImmutableArray<T>> 41internal sealed class CustomValueTupleElementComparer<T, U> : IEqualityComparer<(T, U)>
Microsoft.Interop.SourceGeneration (2)
SyntaxEquivalentComparer.cs (2)
9public sealed class SyntaxEquivalentComparer : IEqualityComparer<SyntaxNode>, IEqualityComparer<SyntaxToken>
Microsoft.Maui (1)
HotReload\HotReloadExtensions.cs (1)
58 class ReflectionMethodComparer : IEqualityComparer<MethodInfo>
Microsoft.Maui.Controls.Build.Tasks (1)
TypeReferenceExtensions.cs (1)
10 class TypeRefComparer : IEqualityComparer<TypeReference>
Microsoft.Maui.Controls.SourceGen (1)
CodeBehindGenerator.cs (1)
771 class CompilationReferencesComparer : IEqualityComparer<Compilation>
Microsoft.ML.AutoML (1)
AutoMLExperiment\TrialResult.cs (1)
15public class TrialResult : IEqualityComparer<TrialResult>
Microsoft.ML.Core (1)
Data\ReadOnlyMemoryUtils.cs (1)
259public sealed class ReadonlyMemoryCharComparer : IEqualityComparer<ReadOnlyMemory<char>>
Microsoft.ML.CpuMath.UnitTests (2)
UnitTests.cs (2)
1002internal class FloatEqualityComparer : IEqualityComparer<float> 1015internal class FloatEqualityComparerForMatMul : IEqualityComparer<float>
Microsoft.ML.Data (4)
Commands\TypeInfoCommand.cs (1)
54private sealed class SetOfKindsComparer : IEqualityComparer<ISet<InternalDataKind>>
Transforms\Hashing.cs (2)
1532private sealed class TextEqualityComparer : IEqualityComparer<ReadOnlyMemory<char>> 1552private sealed class KeyValueComparer<T> : IEqualityComparer<KeyValuePair<int, T>>
Transforms\InvertHashUtils.cs (1)
125private sealed class PairEqualityComparer : IEqualityComparer<Pair>
Microsoft.ML.SearchSpace (1)
Parameter.cs (1)
63public sealed class Parameter : IDictionary<string, Parameter>, IEquatable<Parameter>, IEqualityComparer<Parameter>
Microsoft.ML.Tokenizers (1)
Utils\ByteArrayComparer.cs (1)
11internal sealed class ReadOnlyMemoryByteComparer : IEqualityComparer<ReadOnlyMemory<byte>>
Microsoft.NET.Build.Tasks (4)
GenerateGlobalUsings.cs (1)
84private sealed class UsingInfoComparer : IComparer<UsingInfo>, IEqualityComparer<UsingInfo>
LockFileLookup.cs (1)
80private class PackageCacheKeyComparer : IEqualityComparer<KeyValuePair<string, NuGetVersion>>
ProcessFrameworkReferences.cs (1)
1214private class PackageToDownloadComparer<T> : IEqualityComparer<T> where T : ITaskItem
ResolvePackageAssets.cs (1)
906class LibraryComparer : IEqualityComparer<(string, NuGetVersion)>
Microsoft.NET.Sdk.StaticWebAssets.Tasks (1)
Data\StaticWebAssetEndpoint.cs (1)
413private sealed class RouteAndAssetEqualityComparer : IEqualityComparer<StaticWebAssetEndpoint>
Microsoft.Private.Windows.Core (2)
System\Collections\Specialized\CompatibleIComparer.cs (1)
6internal class BackCompatibleStringComparer : IEqualityComparer<string>
System\Reflection\Metadata\TypeNameComparer.cs (1)
9internal sealed class TypeNameComparer : IEqualityComparer<TypeName>
Microsoft.TemplateEngine.Cli (1)
TemplateResolution\TemplateGroupMatchInfo.cs (1)
337private class OrdinalIgnoreCaseMatchInfoComparer : IEqualityComparer<ParameterMatchInfo>
Microsoft.TemplateEngine.Edge (7)
BuiltInManagedProvider\GlobalSettingsTemplatePackageProvider.cs (1)
339private class InstallRequestEqualityComparer : IEqualityComparer<InstallRequest>
Settings\LocalizationCacheKeyComparer.cs (1)
9internal class LocalizationCacheKeyComparer : IEqualityComparer<(string? Key, string? Value)>
Template\FilteredTemplateEqualityComparer.cs (1)
7public class FilteredTemplateEqualityComparer : IEqualityComparer<IFilteredTemplateInfo>
Template\OrdinalIgnoreCaseMatchInfoComparer.cs (1)
7public class OrdinalIgnoreCaseMatchInfoComparer : IEqualityComparer<MatchInfo>
Template\TemplateEqualityComparer.cs (1)
9public class TemplateEqualityComparer : IEqualityComparer<ITemplateInfo>
Template\TemplateMatchInfoEqualityComparer.cs (1)
7public class TemplateMatchInfoEqualityComparer : IEqualityComparer<ITemplateMatchInfo>
TemplateListFilter.cs (1)
137private class TemplateMatchInfoEqualityComparer : IEqualityComparer<Abstractions.TemplateFiltering.ITemplateMatchInfo>
Microsoft.TemplateEngine.Utils (1)
ListExtensions.cs (1)
74private class ValueWrapperComparer<T> : IEqualityComparer<ValueWrapper<T>>
Microsoft.VisualStudio.TestPlatform.ObjectModel (4)
Nuget.Frameworks\CompatibilityMappingComparer.cs (1)
10internal class CompatibilityMappingComparer : IEqualityComparer<OneWayCompatibilityMappingEntry>
Nuget.Frameworks\FrameworkRangeComparer.cs (1)
10internal class FrameworkRangeComparer : IEqualityComparer<FrameworkRange>
Nuget.Frameworks\NuGetFrameworkFullComparer.cs (1)
13internal class NuGetFrameworkFullComparer : IEqualityComparer<NuGetFramework>
Nuget.Frameworks\NuGetFrameworkNameComparer.cs (1)
12internal class NuGetFrameworkNameComparer : IEqualityComparer<NuGetFramework>
Mono.Cecil (4)
Mono.Cecil.Metadata\Row.cs (3)
115 sealed class RowEqualityComparer : IEqualityComparer<Row<string, string>>, IEqualityComparer<Row<uint, uint>>, IEqualityComparer<Row<uint, uint, uint>> {
Mono.Cecil.PE\ByteBufferEqualityComparer.cs (1)
16 sealed class ByteBufferEqualityComparer : IEqualityComparer<ByteBuffer> {
NuGet.Build.Tasks.Console (1)
ProjectItemInstanceEvaluatedIncludeComparer.cs (1)
17internal sealed class ProjectItemInstanceEvaluatedIncludeComparer : IEqualityComparer<IMSBuildItem>
NuGet.CommandLine.XPlat (1)
Commands\Package\PackageWithVersionRange.cs (1)
14internal record PackageWithVersionRange : IEqualityComparer<PackageWithVersionRange>
NuGet.Commands (5)
ListCommand\ListCommandRunner.cs (1)
105private class ComparePackageSearchMetadata : IComparer<IPackageSearchMetadata>, IEqualityComparer<IPackageSearchMetadata>
RestoreCommand\DependencyGraphResolver.LibraryRangeComparer.cs (1)
17public sealed class LibraryRangeComparer : IEqualityComparer<LibraryRange>
RestoreCommand\LockFileBuilder.cs (1)
699private class LockFileTargetLibraryNameAndVersionEqualityComparer : IEqualityComparer<LockFileTargetLibrary>
RestoreCommand\RequestFactory\MSBuildItemIdentityComparer.cs (1)
14internal sealed class MSBuildItemIdentityComparer : IEqualityComparer<IMSBuildItem>
RestoreCommand\Utility\ProjectItemIdentityComparer.cs (1)
11internal class ProjectItemIdentityComparer : IEqualityComparer<IItem>
NuGet.Configuration (1)
Settings\SettingFactory.cs (1)
108private class SettingElementKeyComparer : IComparer<SettingElement>, IEqualityComparer<SettingElement>
NuGet.DependencyResolver.Core (2)
GraphItemKeyComparer.cs (1)
14public sealed class GraphItemKeyComparer<T> : IEqualityComparer<GraphItem<T>>
Remote\RemoteDependencyWalker.cs (1)
660private class LibraryDependencyNameComparer : IEqualityComparer<LibraryDependency>
NuGet.Frameworks (4)
comparers\CompatibilityMappingComparer.cs (1)
9public class CompatibilityMappingComparer : IEqualityComparer<OneWayCompatibilityMappingEntry>
comparers\FrameworkRangeComparer.cs (1)
10public class FrameworkRangeComparer : IEqualityComparer<FrameworkRange>
comparers\NuGetFrameworkFullComparer.cs (1)
13public class NuGetFrameworkFullComparer : IEqualityComparer<NuGetFramework>
comparers\NuGetFrameworkNameComparer.cs (1)
12public class NuGetFrameworkNameComparer : IEqualityComparer<NuGetFramework>
NuGet.LibraryModel (2)
CentralPackageVersionNameComparer.cs (1)
9public sealed class CentralPackageVersionNameComparer : IEqualityComparer<CentralPackageVersion>
Library.cs (1)
60private class LibraryIdentityComparer : IEqualityComparer<Library>
NuGet.PackageManagement (2)
Utility\PackageReferenceComparer.cs (1)
11public class PackageReferenceComparer : IEqualityComparer<Packaging.PackageReference>
Utility\SourceRepositoryComparer.cs (1)
11public class SourceRepositoryComparer : IEqualityComparer<SourceRepository>
NuGet.Packaging (4)
ContentModel\ContentItemCollection.cs (1)
370internal class GroupComparer : IEqualityComparer<ContentItem>
ContentModel\ReadOnlyMemoryCharComparerOrdinal.cs (1)
13internal sealed class ReadOnlyMemoryCharComparerOrdinal : IEqualityComparer<ReadOnlyMemory<char>>
Core\comparers\PackageDependencyComparer.cs (1)
11public class PackageDependencyComparer : IEqualityComparer<PackageDependency>
Core\comparers\PackageDependencyInfoComparer.cs (1)
11public class PackageDependencyInfoComparer : IEqualityComparer<PackageDependencyInfo>
NuGet.ProjectModel (2)
ProjectLockFile\LockFileDependencyComparerWithoutContentHash.cs (1)
11public class LockFileDependencyComparerWithoutContentHash : IEqualityComparer<LockFileDependency>
ProjectLockFile\LockFileDependencyIdVersionComparer.cs (1)
12public class LockFileDependencyIdVersionComparer : IEqualityComparer<LockFileDependency>
PresentationCore (1)
System\Windows\Media\FontEmbeddingManager.cs (1)
94private class UriComparer : IEqualityComparer<Uri>
PresentationFramework (1)
System\Windows\Controls\Primitives\Selector.cs (1)
2943private class ItemInfoEqualityComparer : IEqualityComparer<ItemInfo>
ReachFramework (1)
src\wpf\src\Microsoft.DotNet.Wpf\src\Shared\MS\Internal\UriComparer.cs (1)
25internal class UriComparer : IEqualityComparer<Uri>
RepoTasks (1)
src\aspnetcore\src\Shared\CertificateGeneration\MacOSCertificateManager.cs (1)
411private sealed class ThumbprintComparer : IEqualityComparer<X509Certificate2>
Roslyn.Diagnostics.Analyzers (15)
src\60c94c676d650713\SymbolEquivalenceComparer.ParameterSymbolEqualityComparer.cs (1)
18bool distinguishRefFromOut) : IEqualityComparer<IParameterSymbol?>
src\60c94c676d650713\SymbolEquivalenceComparer.SignatureTypeSymbolEquivalenceComparer.cs (1)
13internal sealed class SignatureTypeSymbolEquivalenceComparer(SymbolEquivalenceComparer symbolEquivalenceComparer) : IEqualityComparer<ITypeSymbol?>
src\7a47995420f988d7\AbstractRemoveUnnecessaryImportsService.cs (1)
15IEqualityComparer<T> where T : SyntaxNode
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
918private class PathComparer : IEqualityComparer<string?>
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ReadOnlyMemoryOfCharComparer.cs (2)
14internal sealed class ReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>> 42internal sealed class EmptyReadOnlyMemoryOfCharComparer : IEqualityComparer<ReadOnlyMemory<char>>
src\roslyn\src\Dependencies\Collections\Internal\SegmentedHashSetEqualityComparer`1.cs (1)
19internal sealed class SegmentedHashSetEqualityComparer<T> : IEqualityComparer<SegmentedHashSet<T>?>
src\roslyn\src\Dependencies\Contracts\ReferenceEqualityComparer.cs (1)
19internal sealed class ReferenceEqualityComparer : IEqualityComparer<object?>, IEqualityComparer
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\SyntaxNodeExtensions.cs (1)
838private sealed class DirectiveSyntaxEqualityComparer : IEqualityComparer<TDirectiveTriviaSyntax>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (1)
17IEqualityComparer<TSyntaxNode>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (1)
12private sealed class SymbolKeyComparer : IEqualityComparer<SymbolKey>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ImmutableArrayComparer.cs (1)
13internal sealed class ImmutableArrayComparer<T> : IEqualityComparer<ImmutableArray<T>>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
13private sealed class SimpleNameAssemblyComparer : IEqualityComparer<IAssemblySymbol?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (1)
41internal sealed partial class SymbolEquivalenceComparer : IEqualityComparer<ISymbol?>
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\FindSymbols\LinkedFileReferenceLocationEqualityComparer.cs (1)
14internal sealed class LinkedFileReferenceLocationEqualityComparer : IEqualityComparer<ReferenceLocation>
System.Collections (1)
System\Collections\Generic\SortedSetEqualityComparer.cs (1)
11internal sealed class SortedSetEqualityComparer<T> : IEqualityComparer<SortedSet<T>>
System.Collections.Immutable (5)
System\Collections\Frozen\String\KeyAnalyzer.cs (1)
247private abstract class SubstringComparer : IEqualityComparer<string>
System\Collections\Immutable\ImmutableDictionary_2.Comparers.cs (2)
21internal sealed class Comparers : IEqualityComparer<HashBucket>, IEqualityComparer<KeyValuePair<TKey, TValue>>
System\Collections\Immutable\ImmutableHashSet_1.HashBucketByRefEqualityComparer.cs (1)
17private sealed class HashBucketByRefEqualityComparer : IEqualityComparer<HashBucket>
System\Collections\Immutable\ImmutableHashSet_1.HashBucketByValueEqualityComparer.cs (1)
17private sealed class HashBucketByValueEqualityComparer : IEqualityComparer<HashBucket>
System.ComponentModel.TypeConverter (1)
System\ComponentModel\Design\ServiceContainer.cs (1)
252private sealed class EmbeddedTypeAwareTypeComparer : IEqualityComparer<Type>
System.Composition.TypedParts (1)
System\Composition\TypedParts\Discovery\DiscoveredPart.cs (1)
264private sealed class ParameterInfoComparer : IEqualityComparer<ParameterInfo>
System.Data.Common (3)
System\Data\Common\ObjectStorage.cs (1)
641private sealed class TempAssemblyComparer : IEqualityComparer<KeyValuePair<Type, XmlRootAttribute>>
System\Data\DataRowComparer.cs (1)
116public sealed class DataRowComparer<TRow> : IEqualityComparer<TRow> where TRow : DataRow
System\Data\DataView.cs (1)
81private sealed class DataRowReferenceComparer : IEqualityComparer<DataRow>
System.Diagnostics.DiagnosticSource (1)
System\Diagnostics\DsesActivitySourceListener.cs (1)
223private sealed class SpecLookupKeyComparer : IEqualityComparer<SpecLookupKey>
System.Formats.Cbor (2)
System\Formats\Cbor\Reader\CborReader.Map.cs (1)
200private sealed class KeyEncodingComparer : IEqualityComparer<(int Offset, int Length)>
System\Formats\Cbor\Writer\CborWriter.Map.cs (1)
263IEqualityComparer<(int Offset, int Length)>
System.IO.Packaging (2)
System\IO\Packaging\PackUriHelper.cs (1)
889internal sealed class ValidatedPartUriEqualityComparer : IEqualityComparer<ValidatedPartUri>
System\IO\Packaging\ZipPackage.cs (1)
731private sealed class ExtensionEqualityComparer : IEqualityComparer<string>
System.Linq.Parallel (1)
System\Linq\Parallel\Utils\WrapperEqualityComparer.cs (1)
20internal readonly struct WrapperEqualityComparer<T> : IEqualityComparer<Wrapper<T>>
System.Private.CoreLib (8)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\EqualityComparer.cs (1)
12public abstract partial class EqualityComparer<T> : IEqualityComparer, IEqualityComparer<T>
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\HashSetEqualityComparer.cs (1)
9internal sealed class HashSetEqualityComparer<T> : IEqualityComparer<HashSet<T>?>
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\NonRandomizedStringEqualityComparer.cs (1)
17public class NonRandomizedStringEqualityComparer : IEqualityComparer<string?>, IInternalStringEqualityComparer, ISerializable
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\ReferenceEqualityComparer.cs (1)
21sealed class ReferenceEqualityComparer : IEqualityComparer<object?>, IEqualityComparer
src\runtime\src\libraries\System.Private.CoreLib\src\System\Numerics\TotalOrderIeee754Comparer.cs (1)
16public readonly struct TotalOrderIeee754Comparer<T> : IComparer<T>, IEqualityComparer<T>, IEquatable<TotalOrderIeee754Comparer<T>>
src\runtime\src\libraries\System.Private.CoreLib\src\System\Resources\FastResourceComparer.cs (1)
14internal sealed class FastResourceComparer : IComparer, IEqualityComparer, IComparer<string?>, IEqualityComparer<string?>
src\runtime\src\libraries\System.Private.CoreLib\src\System\StringComparer.cs (1)
15public abstract class StringComparer : IComparer, IEqualityComparer, IComparer<string?>, IEqualityComparer<string?>
System\Collections\Generic\EqualityComparer.NativeAot.cs (1)
14public abstract partial class EqualityComparer<T> : IEqualityComparer, IEqualityComparer<T>
System.Private.Windows.Core (2)
System\Collections\Specialized\CompatibleIComparer.cs (1)
6internal class BackCompatibleStringComparer : IEqualityComparer<string>
System\Reflection\Metadata\TypeNameComparer.cs (1)
9internal sealed class TypeNameComparer : IEqualityComparer<TypeName>
System.Private.Windows.Core.TestUtilities (1)
XUnit\FloatingPointToleranceComparerer.cs (1)
12public class FloatingPointToleranceComparerer<T> : IEqualityComparer<T>
System.Private.Xml (1)
System\Xml\Core\XmlTextReaderImplHelpers.cs (1)
710internal sealed class AtomizedNameEqualityComparer : IEqualityComparer<NodeData>
System.Private.Xml.Linq (2)
System\Xml\Linq\XNodeEqualityComparer.cs (1)
16IEqualityComparer<XNode>
System\Xml\Schema\XNodeValidator.cs (1)
376internal sealed class XmlSchemaInfoEqualityComparer : IEqualityComparer<XmlSchemaInfo>
System.Reflection.Metadata (2)
System\Reflection\Metadata\HandleComparer.cs (2)
8public sealed class HandleComparer : IEqualityComparer<Handle>, IComparer<Handle>, IEqualityComparer<EntityHandle>, IComparer<EntityHandle>
System.Resources.Extensions (2)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Resources\FastResourceComparer.cs (1)
14internal sealed class FastResourceComparer : IComparer, IEqualityComparer, IComparer<string?>, IEqualityComparer<string?>
System\Resources\Extensions\TypeNameComparer.cs (1)
18internal sealed class TypeNameComparer : IEqualityComparer<string>
System.Resources.Writer (1)
System\Resources\__FastResourceComparer.cs (1)
13internal sealed class FastResourceComparer : IComparer<string>, IEqualityComparer<string>
System.ServiceModel.Primitives (4)
System\IdentityModel\Claims\ClaimComparer.cs (1)
15internal class ClaimComparer : IEqualityComparer<Claim>
System\ServiceModel\ChannelFactoryRefCache.cs (1)
65private class EndpointTraitComparer : IEqualityComparer<EndpointTrait<TChannel>>
System\ServiceModel\Dispatcher\OperationFormatter.cs (1)
960internal class QNameComparer : IEqualityComparer<QName>
System\ServiceModel\Security\InMemoryNonceCache.cs (1)
109internal sealed class NonceKeyComparer : IEqualityComparer, Collections.Generic.IEqualityComparer<byte[]>
System.Text.Json (3)
System\Text\Json\Document\JsonDocument.PropertyNameSet.cs (1)
144private sealed class PropertyNameComparer : IEqualityComparer<ReadOnlyMemory<byte>>
System\Text\Json\JsonHelpers.cs (1)
249IEqualityComparer<byte[]>
System\Text\Json\Serialization\JsonSerializerOptions.Caching.cs (1)
512private sealed class EqualityComparer : IEqualityComparer<JsonSerializerOptions>
System.Text.RegularExpressions.Generator (1)
RegexGenerator.cs (1)
393private sealed class ObjectImmutableArraySequenceEqualityComparer : IEqualityComparer<ImmutableArray<object>>
System.Windows.Forms.Design (2)
System\ComponentModel\Design\Serialization\DesignerSerializationManager.cs (1)
972private sealed class ReferenceComparer : IEqualityComparer<object>
System\ComponentModel\Design\Serialization\ExpressionTable.cs (1)
44private class ReferenceComparer : IEqualityComparer<object>
System.Xaml (1)
System\Xaml\XamlObjectReader.cs (1)
231private class ObjectReferenceEqualityComparer : IEqualityComparer<object>
3027 references to IEqualityComparer
aspire (3)
Certificates\CertificateGeneration\MacOSCertificateManager.cs (3)
471public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer(); 474bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) => 478int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
dotnet-dev-certs (3)
src\aspnetcore\src\Shared\CertificateGeneration\MacOSCertificateManager.cs (3)
413public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer(); 416bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) => 420int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
dotnet-svcutil-lib (29)
FrameworkFork\Microsoft.Xml\Xml\Resolvers\XmlPreloadedResolver.cs (1)
171public XmlPreloadedResolver(XmlResolver fallbackResolver, XmlKnownDtds preloadedDtds, IEqualityComparer<Uri> uriComparer)
FrameworkFork\System.ServiceModel\Internals\System\Runtime\MruCache.cs (1)
33public MruCache(int lowWatermark, int highWatermark, IEqualityComparer<TKey> comparer)
FrameworkFork\System.ServiceModel\System\IdentityModel\Claims\Claim.cs (3)
49private IEqualityComparer<Claim> _comparer; 51private Claim(string claimType, object resource, string right, IEqualityComparer<Claim> comparer) 72public static IEqualityComparer<Claim> DefaultComparer
FrameworkFork\System.ServiceModel\System\IdentityModel\Claims\ClaimComparer.cs (15)
18private static IEqualityComparer<Claim> s_defaultComparer; 19private static IEqualityComparer<Claim> s_hashComparer; 20private static IEqualityComparer<Claim> s_dnsComparer; 21private static IEqualityComparer<Claim> s_rsaComparer; 22private static IEqualityComparer<Claim> s_thumbprintComparer; 24private static IEqualityComparer<Claim> s_upnComparer; 26private static IEqualityComparer<Claim> s_x500DistinguishedNameComparer; 34public static IEqualityComparer<Claim> GetComparer(string claimType) 55public static IEqualityComparer<Claim> Default 67public static IEqualityComparer<Claim> Dns 79public static IEqualityComparer<Claim> Hash 91public static IEqualityComparer<Claim> Rsa 103public static IEqualityComparer<Claim> Thumbprint 116public static IEqualityComparer<Claim> Upn 129public static IEqualityComparer<Claim> X500DistinguishedName
FrameworkFork\System.ServiceModel\System\IdentityModel\Claims\ClaimSet.cs (1)
76public virtual bool ContainsClaim(Claim claim, IEqualityComparer<Claim> comparer)
FrameworkFork\System.ServiceModel\System\ServiceModel\Description\ServiceContractGenerator.cs (2)
632bool IEqualityComparer<MessageDescription>.Equals(MessageDescription x, MessageDescription y) 658int IEqualityComparer<MessageDescription>.GetHashCode(MessageDescription obj)
FrameworkFork\System.ServiceModel\System\ServiceModel\EndpointIdentity.cs (3)
14private IEqualityComparer<Claim> _claimComparer; 28protected void Initialize(Claim identityClaim, IEqualityComparer<Claim> claimComparer) 101private IEqualityComparer<Claim> GetClaimComparer()
FrameworkFork\System.ServiceModel\System\ServiceModel\SynchronizedKeyedCollection.cs (3)
16private IEqualityComparer<K> _comparer; 34protected SynchronizedKeyedCollection(object syncRoot, IEqualityComparer<K> comparer) 44protected SynchronizedKeyedCollection(object syncRoot, IEqualityComparer<K> comparer, int dictionaryCreationThreshold)
GenerateDocumentationAndConfigFiles (158)
src\7a47995420f988d7\AbstractRemoveUnnecessaryImportsService.cs (2)
43bool IEqualityComparer<T>.Equals(T? x, T? y) 46int IEqualityComparer<T>.GetHashCode(T obj)
src\roslyn\src\Compilers\Core\Portable\Collections\SmallDictionary.cs (3)
39public readonly IEqualityComparer<K> Comparer; 46public SmallDictionary(IEqualityComparer<K> comparer) 51public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
916public static readonly IEqualityComparer<string> Comparer = new PathComparer();
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ConcurrentSet.cs (1)
49public ConcurrentSet(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\MultiDictionary.cs (8)
103private readonly IEqualityComparer<V> _equalityComparer; 131public ValueSet(object? value, IEqualityComparer<V>? equalityComparer = null) 181public bool Contains(V v, IEqualityComparer<V> comparer) 208private readonly IEqualityComparer<V>? _valueComparer; 234public MultiDictionary(IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null) 247public MultiDictionary(int capacity, IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null)
src\roslyn\src\Dependencies\Collections\Extensions\IEnumerableExtensions.cs (11)
105public static bool SetEquals<T>(this IEnumerable<T> source1, IEnumerable<T> source2, IEqualityComparer<T>? comparer) 135public static ISet<T> ToSet<T>(this IEnumerable<T> source, IEqualityComparer<T>? comparer) 258public static bool HasDuplicates<T>(this IEnumerable<T> source, IEqualityComparer<T> comparer) 271/// <seealso cref="Microsoft.CodeAnalysis.ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 273public static bool HasDuplicates<TItem, TValue>(this IEnumerable<TItem> source, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 615public static int IndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 624private static int EnumeratingIndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 640public static int IndexOf<T>(this IReadOnlyList<T> list, T value, IEqualityComparer<T> comparer) 698public static ImmutableDictionary<K, V> ToImmutableDictionaryOrEmpty<K, V>(this IEnumerable<KeyValuePair<K, V>>? items, IEqualityComparer<K>? keyComparer) 764internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IEnumerable<T> data, Func<T, K> keySelector, IEqualityComparer<K>? comparer = null) 945/// Variant of <see cref="System.Linq.Enumerable.SequenceEqual{TSource}(IEnumerable{TSource}, IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>
src\roslyn\src\Dependencies\Collections\Extensions\IListExtensions.cs (4)
18public static bool HasDuplicates<T>(this IReadOnlyList<T> list, IEqualityComparer<T> comparer) 31/// <seealso cref="ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(System.Collections.Immutable.ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 32/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 34internal static bool HasDuplicates<TItem, TValue>(this IReadOnlyList<TItem> list, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer)
src\roslyn\src\Dependencies\Collections\Extensions\ImmutableArrayExtensions.cs (9)
624public static bool SetEquals<T>(this ImmutableArray<T> array1, ImmutableArray<T> array2, IEqualityComparer<T> comparer) 754internal static bool HasDuplicates<T>(this ImmutableArray<T> array, IEqualityComparer<T> comparer) 767/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 769internal static bool HasDuplicates<TItem, TValue>(this ImmutableArray<TItem> array, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 861(Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> map, IEqualityComparer<TKey> comparer) 917internal static int IndexOf<T>(this ImmutableArray<T> array, T item, IEqualityComparer<T> comparer) 1186/// Specialization of <see cref="System.Linq.Enumerable.Distinct{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>. 1188public static ImmutableArray<T> Distinct<T>(this ImmutableArray<T> array, IEqualityComparer<T>? comparer = null) 1255/// Variant of <see cref="System.Collections.Immutable.ImmutableArray{T}.Contains(T, IEqualityComparer{T})"/>
src\roslyn\src\Dependencies\Collections\OneOrMany.cs (5)
191public bool SequenceEqual(OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 206public bool SequenceEqual(ImmutableArray<T> other, IEqualityComparer<T>? comparer = null) 209public bool SequenceEqual(IEnumerable<T> other, IEqualityComparer<T>? comparer = null) 281public static bool SequenceEqual<T>(this ImmutableArray<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 284public static bool SequenceEqual<T>(this IEnumerable<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary.cs (6)
23public static ImmutableSegmentedDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 31public static ImmutableSegmentedDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 39public static ImmutableSegmentedDictionary<TKey, TValue> CreateRange<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) 56public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> items, IEqualityComparer<TKey>? keyComparer) 72public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IEqualityComparer<TKey>? keyComparer) 90public static ImmutableSegmentedDictionary<TKey, TSource> ToImmutableSegmentedDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2.cs (2)
84public IEqualityComparer<TKey> KeyComparer => _dictionary.Comparer; 267public ImmutableSegmentedDictionary<TKey, TValue> WithComparer(IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+Builder.cs (1)
27public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+ValueBuilder.cs (1)
35public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet.cs (12)
27/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T})"/> 28public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer) 31/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T)"/> 32public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item) 35/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T[])"/> 36public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items) 43/// <inheritdoc cref="ImmutableHashSet.CreateBuilder{T}(IEqualityComparer{T}?)"/> 44public static ImmutableSegmentedHashSet<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer) 56/// <inheritdoc cref="ImmutableHashSet.CreateRange{T}(IEqualityComparer{T}?, IEnumerable{T})"/> 57public static ImmutableSegmentedHashSet<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items) 74/// <inheritdoc cref="ImmutableHashSet.ToImmutableHashSet{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/> 75public static ImmutableSegmentedHashSet<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1.cs (3)
79public IEqualityComparer<T> KeyComparer => _set.Comparer; 304/// <inheritdoc cref="ImmutableHashSet{T}.WithComparer(IEqualityComparer{T}?)"/> 305public ImmutableSegmentedHashSet<T> WithComparer(IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+Builder.cs (1)
27public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+ValueBuilder.cs (1)
38public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (11)
306public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 339public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 372/// <inheritdoc cref="ImmutableList{T}.Remove(T, IEqualityComparer{T}?)"/> 373public ImmutableSegmentedList<T> Remove(T value, IEqualityComparer<T>? equalityComparer) 427/// <inheritdoc cref="ImmutableList{T}.RemoveRange(IEnumerable{T}, IEqualityComparer{T}?)"/> 428public ImmutableSegmentedList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 481/// <inheritdoc cref="ImmutableList{T}.Replace(T, T, IEqualityComparer{T}?)"/> 482public ImmutableSegmentedList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 618IImmutableList<T> IImmutableList<T>.Remove(T value, IEqualityComparer<T>? equalityComparer) 624IImmutableList<T> IImmutableList<T>.RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 636IImmutableList<T> IImmutableList<T>.Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+Builder.cs (4)
157/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.IndexOf(T, int, int, IEqualityComparer{T}?)"/> 158public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 180/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.LastIndexOf(T, int, int, IEqualityComparer{T}?)"/> 181public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (2)
208public readonly int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 244public readonly int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedArray.cs (2)
216public static int IndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer) 281public static int LastIndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedDictionary`2.cs (10)
56private readonly IEqualityComparer<TKey>? _comparer; 78public SegmentedDictionary(IEqualityComparer<TKey>? comparer) 83public SegmentedDictionary(int capacity, IEqualityComparer<TKey>? comparer) 123public SegmentedDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey>? comparer) 139public SegmentedDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) 222public IEqualityComparer<TKey> Comparer 409var comparer = _comparer; 523var comparer = _comparer; 710var comparer = _comparer; 787var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedHashSet`1.cs (10)
63private readonly IEqualityComparer<T>? _comparer; 74public SegmentedHashSet() : this((IEqualityComparer<T>?)null) { } 76public SegmentedHashSet(IEqualityComparer<T>? comparer) 105public SegmentedHashSet(IEnumerable<T> collection, IEqualityComparer<T>? comparer) : this(comparer) 138public SegmentedHashSet(int capacity, IEqualityComparer<T>? comparer) : this(comparer) 230var comparer = _comparer; 301IEqualityComparer<T>? comparer = _comparer; 865public IEqualityComparer<T> Comparer 992public static IEqualityComparer<SegmentedHashSet<T>> CreateSetComparer() => new SegmentedHashSetEqualityComparer<T>(); 1028var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedList`1.cs (2)
840public int IndexOf(T item, int index, int count, IEqualityComparer<T>? comparer) 1031public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\TemporaryArray`1.cs (2)
252public readonly bool Contains(T value, IEqualityComparer<T>? equalityComparer = null) 255public readonly int IndexOf(T value, IEqualityComparer<T>? equalityComparer = null)
src\roslyn\src\Dependencies\PooledObjects\ArrayBuilder.cs (2)
209public int IndexOf(T item, IEqualityComparer<T> equalityComparer) 613internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\roslyn\src\Dependencies\PooledObjects\PooledDictionary.cs (2)
27private PooledDictionary(ObjectPool<PooledDictionary<K, V>> pool, IEqualityComparer<K> keyComparer) 52public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K> keyComparer)
src\roslyn\src\Dependencies\PooledObjects\PooledHashSet.cs (2)
25private PooledHashSet(ObjectPool<PooledHashSet<T>> pool, IEqualityComparer<T> equalityComparer) : 41public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`1.cs (1)
20IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`2.cs (2)
39private readonly IEqualityComparer<TItem>? _equalityComparer; 114IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledConcurrentDictionary.cs (5)
29private PooledConcurrentDictionary(ObjectPool<PooledConcurrentDictionary<K, V>>? pool, IEqualityComparer<K> keyComparer) 52private static readonly ConcurrentDictionary<IEqualityComparer<K>, ObjectPool<PooledConcurrentDictionary<K, V>>> s_poolInstancesByComparer = new(); 55public static ObjectPool<PooledConcurrentDictionary<K, V>> CreatePool(IEqualityComparer<K>? keyComparer = null) 66public static PooledConcurrentDictionary<K, V> GetInstance(IEqualityComparer<K>? keyComparer = null) 76public static PooledConcurrentDictionary<K, V> GetInstance(IEnumerable<KeyValuePair<K, V>> initializer, IEqualityComparer<K>? keyComparer = null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledConcurrentSet.cs (2)
33public static PooledConcurrentSet<T> GetInstance(IEqualityComparer<T>? comparer = null) 39public static PooledConcurrentSet<T> GetInstance(IEnumerable<T> initializer, IEqualityComparer<T>? comparer = null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledDictionary.cs (4)
24Func<KeyValuePair<K, V>, TKey> keySelector, Func<KeyValuePair<K, V>, TValue> elementSelector, IEqualityComparer<TKey> comparer) 42private static readonly ConcurrentDictionary<IEqualityComparer<K>, ObjectPool<PooledDictionary<K, V>>> s_poolInstancesByComparer 46IEqualityComparer<K>? keyComparer 67IEqualityComparer<K>? keyComparer = null
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\RoslynHashCode.cs (1)
316public void Add<T>(T value, IEqualityComparer<T>? comparer)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\SmallDictionary.cs (3)
41public readonly IEqualityComparer<K> Comparer; 48public SmallDictionary(IEqualityComparer<K> comparer) 53public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ImmutableArrayExtensions.cs (1)
21public static bool Contains<T>(this ImmutableArray<T> items, T item, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (2)
46bool IEqualityComparer<TSyntaxNode>.Equals([AllowNull] TSyntaxNode x, [AllowNull] TSyntaxNode y) 49int IEqualityComparer<TSyntaxNode>.GetHashCode([DisallowNull] TSyntaxNode obj)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
133/// Returns an <see cref="IEqualityComparer{T}"/> that determines if two <see cref="SymbolKey"/>s 145public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase = false, bool ignoreAssemblyKeys = false)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (2)
52public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase, bool ignoreAssemblyKey) 63public static IEqualityComparer<SymbolKey> GetComparer(ComparisonOptions options)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AsyncPriorityWorkQueue.cs (1)
75IEqualityComparer<TItem> equalityComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\BidirectionalMap.cs (4)
23public BidirectionalMap(IEnumerable<KeyValuePair<TKey, TValue>> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null) 29public BidirectionalMap(IEnumerable<(TKey key, TValue value)> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\IDictionaryExtensions.cs (1)
100public static bool MultiAdd<TKey, TValue>(this IDictionary<TKey, ImmutableHashSet<TValue>> dictionary, TKey key, TValue value, IEqualityComparer<TValue>? comparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ReferenceCountedDisposableCache.cs (1)
26public ReferenceCountedDisposableCache(IEqualityComparer<TKey> comparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (2)
25private IEqualityComparer<IParameterSymbol> ParameterEquivalenceComparer => _symbolEquivalenceComparer.ParameterEquivalenceComparer; 27private IEqualityComparer<ITypeSymbol> SignatureTypeEquivalenceComparer => _symbolEquivalenceComparer.SignatureTypeEquivalenceComparer;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
15public static readonly IEqualityComparer<IAssemblySymbol> Instance = new SimpleNameAssemblyComparer();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (2)
50private readonly IEqualityComparer<IAssemblySymbol>? _assemblyComparer; 62IEqualityComparer<IAssemblySymbol>? assemblyComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\FindSymbols\LinkedFileReferenceLocationEqualityComparer.cs (1)
16public static readonly IEqualityComparer<ReferenceLocation> Instance = new LinkedFileReferenceLocationEqualityComparer();
ILCompiler.Compiler (4)
Compiler\DependencyAnalysis\NodeFactory.cs (1)
164public NodeCache(Func<TKey, TValue> creator, IEqualityComparer<TKey> comparer)
Compiler\DependencyAnalysis\NodeFactory.NativeLayout.cs (2)
284bool IEqualityComparer<List<uint>>.Equals(List<uint> x, List<uint> y) 297int IEqualityComparer<List<uint>>.GetHashCode(List<uint> obj)
src\runtime\src\coreclr\tools\Common\Pgo\PgoFormat.cs (1)
537int IEqualityComparer<PgoSchemaElem>.GetHashCode(PgoSchemaElem obj) => obj.ILOffset ^ ((int)(obj.InstrumentationKind & PgoInstrumentationKind.DescriptorMask) << 20);
ILCompiler.DependencyAnalysisFramework (1)
FullGraphLogStrategy.cs (1)
95public static IEqualityComparer<MarkData> Default = new MarkDataEqualityComparer();
ILCompiler.MetadataTransform (2)
ILCompiler\Metadata\EntityMap.cs (1)
20public EntityMap(IEqualityComparer<TEntity> comparer)
Internal\Metadata\NativeFormat\Writer\NativeMetadataWriter.cs (1)
993public static bool SequenceEqual<T>(this List<T> first, List<T> second, IEqualityComparer<T> comparer)
ILCompiler.ReadyToRun (2)
Compiler\DependencyAnalysis\ReadyToRunCodegenNodeFactory.cs (1)
34public NodeCache(Func<TKey, TValue> creator, IEqualityComparer<TKey> comparer)
src\runtime\src\coreclr\tools\Common\Pgo\PgoFormat.cs (1)
537int IEqualityComparer<PgoSchemaElem>.GetHashCode(PgoSchemaElem obj) => obj.ILOffset ^ ((int)(obj.InstrumentationKind & PgoInstrumentationKind.DescriptorMask) << 20);
ILLink.RoslynAnalyzer (1)
ImmutableArrayOperations.cs (1)
13where TComp : IEqualityComparer<T>
Microsoft.AspNetCore.App.CodeFixes (1)
src\aspnetcore\src\Shared\HashCode.cs (1)
307public void Add<T>(T value, IEqualityComparer<T>? comparer)
Microsoft.AspNetCore.Components (1)
src\aspnetcore\src\Http\Routing\src\RouteValueEqualityComparer.cs (1)
9/// An <see cref="IEqualityComparer{Object}"/> implementation that compares objects as-if
Microsoft.AspNetCore.Components.QuickGrid (3)
QuickGrid.razor.cs (3)
133public IEqualityComparer<TGridItem>? ItemComparer 178private IEqualityComparer<TGridItem>? _itemComparer; 181private readonly IEqualityComparer<(int, TGridItem)> _virtualizeItemComparer;
Microsoft.AspNetCore.Components.Web (2)
Virtualization\Virtualize.cs (2)
195public IEqualityComparer<TItem> ItemComparer 210private IEqualityComparer<TItem> _itemComparer = EqualityComparer<TItem>.Default;
Microsoft.AspNetCore.Components.WebView (1)
src\aspnetcore\src\Shared\StaticWebAssets\ManifestStaticWebAssetFileProvider.cs (1)
20private static readonly IEqualityComparer<IFileInfo> _nameComparer = new FileNameComparer();
Microsoft.AspNetCore.DeveloperCertificates.XPlat (3)
src\aspnetcore\src\Shared\CertificateGeneration\MacOSCertificateManager.cs (3)
413public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer(); 416bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) => 420int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
Microsoft.AspNetCore.Diagnostics.Middleware.PerformanceTests (6)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledDictionaryPolicy.cs (2)
17private readonly IEqualityComparer<TKey>? _comparer; 19public PooledDictionaryPolicy(IEqualityComparer<TKey>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledSetPolicy.cs (2)
17private readonly IEqualityComparer<T>? _comparer; 19public PooledSetPolicy(IEqualityComparer<T>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PoolFactory.cs (2)
152public static ObjectPool<Dictionary<TKey, TValue>> CreateDictionaryPool<TKey, TValue>(IEqualityComparer<TKey>? comparer = null, int maxCapacity = DefaultCapacity) 171public static ObjectPool<HashSet<T>> CreateHashSetPool<T>(IEqualityComparer<T>? comparer = null, int maxCapacity = DefaultCapacity)
Microsoft.AspNetCore.Hosting (1)
src\aspnetcore\src\Shared\StaticWebAssets\ManifestStaticWebAssetFileProvider.cs (1)
20private static readonly IEqualityComparer<IFileInfo> _nameComparer = new FileNameComparer();
Microsoft.AspNetCore.Http (6)
src\aspnetcore\src\Shared\CopyOnWriteDictionary\CopyOnWriteDictionary.cs (2)
19private readonly IEqualityComparer<TKey> _comparer; 24IEqualityComparer<TKey> comparer)
src\aspnetcore\src\Shared\Dictionary\AdaptiveCapacityDictionary.cs (4)
27private readonly IEqualityComparer<TKey> _comparer; 41public AdaptiveCapacityDictionary(IEqualityComparer<TKey> comparer) 60public AdaptiveCapacityDictionary(int capacity, IEqualityComparer<TKey> comparer) 146public IEqualityComparer<TKey> Comparer => _comparer;
Microsoft.AspNetCore.Http.Abstractions (1)
Routing\RouteValueDictionary.cs (1)
308public IEqualityComparer<string> Comparer => StringComparer.OrdinalIgnoreCase;
Microsoft.AspNetCore.Http.RequestDelegateGenerator (3)
src\aspnetcore\src\Shared\HashCode.cs (1)
307public void Add<T>(T value, IEqualityComparer<T>? comparer)
src\aspnetcore\src\Shared\RoslynUtils\IncrementalValuesProviderExtensions.cs (1)
14IEqualityComparer<TSource> comparer)
StaticRouteHandlerModel\EndpointHttpMethodComparer.cs (1)
12private static readonly IEqualityComparer<string> OrdinalComparer = StringComparer.Ordinal;
Microsoft.AspNetCore.Mvc.Core (2)
src\aspnetcore\src\Shared\CopyOnWriteDictionary\CopyOnWriteDictionary.cs (2)
19private readonly IEqualityComparer<TKey> _comparer; 24IEqualityComparer<TKey> comparer)
Microsoft.AspNetCore.OpenApi.SourceGenerators (2)
src\aspnetcore\src\Shared\HashCode.cs (1)
307public void Add<T>(T value, IEqualityComparer<T>? comparer)
src\aspnetcore\src\Shared\RoslynUtils\IncrementalValuesProviderExtensions.cs (1)
14IEqualityComparer<TSource> comparer)
Microsoft.AspNetCore.Razor.Runtime (2)
src\aspnetcore\src\Shared\CopyOnWriteDictionary\CopyOnWriteDictionary.cs (2)
19private readonly IEqualityComparer<TKey> _comparer; 24IEqualityComparer<TKey> comparer)
Microsoft.AspNetCore.Razor.Utilities.Shared (31)
ArrayExtensions.cs (1)
184this (TKey key, TValue value)[] array, IEqualityComparer<TKey> keyComparer)
src\roslyn\src\Dependencies\PooledObjects\ArrayBuilder.cs (2)
209public int IndexOf(T item, IEqualityComparer<T> equalityComparer) 613internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\roslyn\src\Dependencies\PooledObjects\PooledDictionary.cs (2)
27private PooledDictionary(ObjectPool<PooledDictionary<K, V>> pool, IEqualityComparer<K> keyComparer) 52public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K> keyComparer)
src\roslyn\src\Dependencies\PooledObjects\PooledHashSet.cs (2)
25private PooledHashSet(ObjectPool<PooledHashSet<T>> pool, IEqualityComparer<T> equalityComparer) : 41public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Razor\src\Shared\Microsoft.AspNetCore.Razor.SharedUtilities\ImmutableArrayExtensions.cs (1)
927public static ImmutableArray<T> GetMostRecentUniqueItems<T>(this ImmutableArray<T> source, IEqualityComparer<T> comparer)
src\roslyn\src\Razor\src\Shared\Microsoft.AspNetCore.Razor.SharedUtilities\PooledObjects\DictionaryBuilderPool`2.cs (1)
28Opt<IEqualityComparer<TKey>?> keyComparer = default,
src\roslyn\src\Razor\src\Shared\Microsoft.AspNetCore.Razor.SharedUtilities\PooledObjects\DictionaryBuilderPool`2.Policy.cs (3)
15private readonly IEqualityComparer<TKey>? _keyComparer; 17private Policy(IEqualityComparer<TKey>? keyComparer) 22public static Policy Create(Opt<IEqualityComparer<TKey>?> keyComparer = default)
src\roslyn\src\Razor\src\Shared\Microsoft.AspNetCore.Razor.SharedUtilities\PooledObjects\DictionaryPool`2.cs (1)
27Opt<IEqualityComparer<TKey>?> comparer = default,
src\roslyn\src\Razor\src\Shared\Microsoft.AspNetCore.Razor.SharedUtilities\PooledObjects\DictionaryPool`2.Policy.cs (3)
15private readonly IEqualityComparer<TKey>? _comparer; 18private Policy(IEqualityComparer<TKey>? comparer, int maximumObjectSize) 27Opt<IEqualityComparer<TKey>?> comparer = default,
src\roslyn\src\Razor\src\Shared\Microsoft.AspNetCore.Razor.SharedUtilities\PooledObjects\HashSetPool`1.cs (2)
28public IEqualityComparer<T> Comparer => _policy.Comparer; 31Opt<IEqualityComparer<T>?> comparer = default,
src\roslyn\src\Razor\src\Shared\Microsoft.AspNetCore.Razor.SharedUtilities\PooledObjects\HashSetPool`1.Policy.cs (3)
14public IEqualityComparer<T> Comparer { get; } 18private Policy(IEqualityComparer<T>? comparer, int maximumObjectSize) 27Opt<IEqualityComparer<T>?> comparer = default,
src\roslyn\src\Razor\src\Shared\Microsoft.AspNetCore.Razor.SharedUtilities\PooledObjects\PooledArrayBuilder`1.cs (2)
830public readonly int IndexOf(T item, IEqualityComparer<T> comparer) 858public readonly bool Contains(T item, IEqualityComparer<T> comparer)
src\roslyn\src\Razor\src\Shared\Microsoft.AspNetCore.Razor.SharedUtilities\PooledObjects\PooledHashSet`1.cs (6)
20private readonly IEqualityComparer<T> _comparer; 42public PooledHashSet(IEqualityComparer<T> comparer) 48public PooledHashSet(IEqualityComparer<T> comparer, int capacity) 69private static void ValidateComparer(IEqualityComparer<T> comparer) 80private readonly IEqualityComparer<T> Comparer => _comparer ?? EqualityComparer<T>.Default; 258static HashSetPool<T>? TrySelectPool(IEqualityComparer<T> comparer)
src\roslyn\src\Razor\src\Shared\Microsoft.AspNetCore.Razor.SharedUtilities\Utilities\ReferenceEqualityComparer.cs (2)
18bool IEqualityComparer<T>.Equals(T? x, T? y) 21int IEqualityComparer<T>.GetHashCode(T obj)
Microsoft.AspNetCore.Routing (5)
DecisionTree\DecisionCriterionValueEqualityComparer.cs (2)
8public DecisionCriterionValueEqualityComparer(IEqualityComparer<object> innerComparer) 13public IEqualityComparer<object> InnerComparer { get; private set; }
DecisionTree\IClassifier.cs (1)
10IEqualityComparer<object> ValueComparer { get; }
RouteValueEqualityComparer.cs (1)
9/// An <see cref="IEqualityComparer{Object}"/> implementation that compares objects as-if
Tree\LinkGenerationDecisionTree.cs (1)
172public IEqualityComparer<object> ValueComparer => RouteValueEqualityComparer.Default;
Microsoft.AspNetCore.Server.Kestrel.Core (3)
src\aspnetcore\src\Shared\CertificateGeneration\MacOSCertificateManager.cs (3)
413public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer(); 416bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) => 420int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
Microsoft.Build (119)
Collections\ArrayDictionary.cs (7)
48var comparer = KeyComparer; 80private IEqualityComparer<TKey> KeyComparer => EqualityComparer<TKey>.Default; 82private IEqualityComparer<TValue> ValueComparer => EqualityComparer<TValue>.Default; 120var keyComparer = KeyComparer; 121var valueComparer = ValueComparer; 135var comparer = KeyComparer; 184var comparer = KeyComparer;
Collections\MultiDictionary.cs (2)
65internal MultiDictionary(IEqualityComparer<K> keyComparer) 74internal MultiDictionary(int capacity, IEqualityComparer<K> keyComparer)
Collections\RetrievableEntryHashSet\RetrievableEntryHashSet.cs (9)
109private IEqualityComparer<string> _comparer; 119public RetrievableEntryHashSet(IEqualityComparer<string> comparer) 131public RetrievableEntryHashSet(IEnumerable<T> collection, IEqualityComparer<string> comparer, bool readOnly = false) 137public RetrievableEntryHashSet(IEnumerable<KeyValuePair<string, T>> collection, IEqualityComparer<string> comparer, bool readOnly = false) 148public RetrievableEntryHashSet(int suggestedCapacity, IEqualityComparer<string> comparer) 159public RetrievableEntryHashSet(IEnumerable<T> collection, IEqualityComparer<string> comparer) 522info.AddValue(ComparerName, _comparer, typeof(IEqualityComparer<string>)); 548_comparer = (IEqualityComparer<string>)_siInfo.GetValue(ComparerName, typeof(IEqualityComparer<string>));
Collections\RetrievableEntryHashSet\RetrievableValuedEntryHashSet.cs (2)
24public RetrievableValuedEntryHashSet(IEqualityComparer<string> comparer) 34public RetrievableValuedEntryHashSet(int suggestedCapacity, IEqualityComparer<string> comparer)
Collections\WeakValueDictionary.cs (1)
44public WeakValueDictionary(IEqualityComparer<K> keyComparer)
Graph\GraphBuilder.cs (1)
80IEqualityComparer<ConfigurationMetadata> configComparer = EqualityComparer<ConfigurationMetadata>.Default;
Graph\ParallelWorkSet.cs (1)
79internal ParallelWorkSet(int degreeOfParallelism, IEqualityComparer<TKey> comparer, CancellationToken cancellationToken)
Instance\ProjectItemInstance.cs (2)
353internal static IEqualityComparer<ProjectItemInstance> EqualityComparer 2564public static IEqualityComparer<ProjectItemInstance> Default
Logging\ParallelLogger\ParallelConsoleLogger.cs (1)
1713internal void AddEventStarted(string projectTargetNames, BuildEventContext buildEventContext, DateTime eventTimeStamp, IEqualityComparer<BuildEventContext> comparer)
src\5057ed6cf5d6323b\ImmutableSegmentedDictionary.cs (6)
23public static ImmutableSegmentedDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 31public static ImmutableSegmentedDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 39public static ImmutableSegmentedDictionary<TKey, TValue> CreateRange<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) 56public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> items, IEqualityComparer<TKey>? keyComparer) 72public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IEqualityComparer<TKey>? keyComparer) 90public static ImmutableSegmentedDictionary<TKey, TSource> ToImmutableSegmentedDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer)
src\5057ed6cf5d6323b\ImmutableSegmentedDictionary`2.cs (2)
84public IEqualityComparer<TKey> KeyComparer => _dictionary.Comparer; 267public ImmutableSegmentedDictionary<TKey, TValue> WithComparer(IEqualityComparer<TKey>? keyComparer)
src\5057ed6cf5d6323b\ImmutableSegmentedDictionary`2+Builder.cs (1)
27public IEqualityComparer<TKey> KeyComparer
src\5057ed6cf5d6323b\ImmutableSegmentedDictionary`2+ValueBuilder.cs (1)
35public IEqualityComparer<TKey> KeyComparer
src\5057ed6cf5d6323b\ImmutableSegmentedHashSet.cs (12)
27/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T})"/> 28public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer) 31/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T)"/> 32public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item) 35/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T[])"/> 36public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items) 43/// <inheritdoc cref="ImmutableHashSet.CreateBuilder{T}(IEqualityComparer{T}?)"/> 44public static ImmutableSegmentedHashSet<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer) 56/// <inheritdoc cref="ImmutableHashSet.CreateRange{T}(IEqualityComparer{T}?, IEnumerable{T})"/> 57public static ImmutableSegmentedHashSet<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items) 74/// <inheritdoc cref="ImmutableHashSet.ToImmutableHashSet{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/> 75public static ImmutableSegmentedHashSet<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
src\5057ed6cf5d6323b\ImmutableSegmentedHashSet`1.cs (3)
79public IEqualityComparer<T> KeyComparer => _set.Comparer; 304/// <inheritdoc cref="ImmutableHashSet{T}.WithComparer(IEqualityComparer{T}?)"/> 305public ImmutableSegmentedHashSet<T> WithComparer(IEqualityComparer<T>? equalityComparer)
src\5057ed6cf5d6323b\ImmutableSegmentedHashSet`1+Builder.cs (1)
27public IEqualityComparer<T> KeyComparer
src\5057ed6cf5d6323b\ImmutableSegmentedHashSet`1+ValueBuilder.cs (1)
38public IEqualityComparer<T> KeyComparer
src\5057ed6cf5d6323b\ImmutableSegmentedList`1.cs (11)
306public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 339public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 372/// <inheritdoc cref="ImmutableList{T}.Remove(T, IEqualityComparer{T}?)"/> 373public ImmutableSegmentedList<T> Remove(T value, IEqualityComparer<T>? equalityComparer) 427/// <inheritdoc cref="ImmutableList{T}.RemoveRange(IEnumerable{T}, IEqualityComparer{T}?)"/> 428public ImmutableSegmentedList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 481/// <inheritdoc cref="ImmutableList{T}.Replace(T, T, IEqualityComparer{T}?)"/> 482public ImmutableSegmentedList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 618IImmutableList<T> IImmutableList<T>.Remove(T value, IEqualityComparer<T>? equalityComparer) 624IImmutableList<T> IImmutableList<T>.RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 636IImmutableList<T> IImmutableList<T>.Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
src\5057ed6cf5d6323b\ImmutableSegmentedList`1+Builder.cs (4)
157/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.IndexOf(T, int, int, IEqualityComparer{T}?)"/> 158public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 180/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.LastIndexOf(T, int, int, IEqualityComparer{T}?)"/> 181public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\5057ed6cf5d6323b\ImmutableSegmentedList`1+ValueBuilder.cs (2)
208public readonly int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 244public readonly int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\5057ed6cf5d6323b\SegmentedDictionary`2.cs (10)
56private readonly IEqualityComparer<TKey>? _comparer; 78public SegmentedDictionary(IEqualityComparer<TKey>? comparer) 83public SegmentedDictionary(int capacity, IEqualityComparer<TKey>? comparer) 123public SegmentedDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey>? comparer) 139public SegmentedDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) 222public IEqualityComparer<TKey> Comparer 409var comparer = _comparer; 523var comparer = _comparer; 710var comparer = _comparer; 787var comparer = _comparer;
src\9f0d3f3da306d8cf\IEnumerableExtensions.cs (7)
133public static bool SetEquals<T>(this IEnumerable<T> source1, IEnumerable<T> source2, IEqualityComparer<T>? comparer) 163public static ISet<T> ToSet<T>(this IEnumerable<T> source, IEqualityComparer<T>? comparer) 586public static int IndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 595private static int EnumeratingIndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 611public static int IndexOf<T>(this IReadOnlyList<T> list, T value, IEqualityComparer<T> comparer) 736public static ImmutableDictionary<K, V> ToImmutableDictionaryOrEmpty<K, V>(this IEnumerable<KeyValuePair<K, V>>? items, IEqualityComparer<K>? keyComparer) 802internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IEnumerable<T> data, Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\9f0d3f3da306d8cf\ImmutableArrayExtensions.cs (5)
755public static bool SetEquals<T>(this ImmutableArray<T> array1, ImmutableArray<T> array2, IEqualityComparer<T> comparer) 815public static ImmutableArray<T> Distinct<T>(this ImmutableArray<T> array, IEqualityComparer<T>? comparer = null) 1085internal static bool HasDuplicates<T>(this ImmutableArray<T> array, IEqualityComparer<T> comparer) 1211(Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> map, IEqualityComparer<TKey> comparer) 1297internal static int IndexOf<T>(this ImmutableArray<T> array, T item, IEqualityComparer<T> comparer)
src\msbuild\artifacts\.packages\microsoft.codeanalysis.collections\5.0.0-1.25277.114\contentFiles\cs\net9.0\OneOrMany.cs (5)
191public bool SequenceEqual(OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 206public bool SequenceEqual(ImmutableArray<T> other, IEqualityComparer<T>? comparer = null) 209public bool SequenceEqual(IEnumerable<T> other, IEqualityComparer<T>? comparer = null) 281public static bool SequenceEqual<T>(this ImmutableArray<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 284public static bool SequenceEqual<T>(this IEnumerable<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null)
src\msbuild\artifacts\.packages\microsoft.codeanalysis.collections\5.0.0-1.25277.114\contentFiles\cs\net9.0\Segmented\SegmentedArray.cs (2)
216public static int IndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer) 281public static int LastIndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer)
src\msbuild\artifacts\.packages\microsoft.codeanalysis.collections\5.0.0-1.25277.114\contentFiles\cs\net9.0\Segmented\SegmentedHashSet`1.cs (10)
63private readonly IEqualityComparer<T>? _comparer; 74public SegmentedHashSet() : this((IEqualityComparer<T>?)null) { } 76public SegmentedHashSet(IEqualityComparer<T>? comparer) 105public SegmentedHashSet(IEnumerable<T> collection, IEqualityComparer<T>? comparer) : this(comparer) 138public SegmentedHashSet(int capacity, IEqualityComparer<T>? comparer) : this(comparer) 230var comparer = _comparer; 301IEqualityComparer<T>? comparer = _comparer; 865public IEqualityComparer<T> Comparer 992public static IEqualityComparer<SegmentedHashSet<T>> CreateSetComparer() => new SegmentedHashSetEqualityComparer<T>(); 1028var comparer = _comparer;
src\msbuild\artifacts\.packages\microsoft.codeanalysis.collections\5.0.0-1.25277.114\contentFiles\cs\net9.0\Segmented\SegmentedList`1.cs (2)
840public int IndexOf(T item, int index, int count, IEqualityComparer<T>? comparer) 1031public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? comparer)
src\msbuild\artifacts\.packages\microsoft.codeanalysis.collections\5.0.0-1.25277.114\contentFiles\cs\net9.0\TemporaryArray`1.cs (2)
251public readonly bool Contains(T value, IEqualityComparer<T>? equalityComparer = null) 254public readonly int IndexOf(T value, IEqualityComparer<T>? equalityComparer = null)
src\msbuild\artifacts\.packages\microsoft.codeanalysis.pooledobjects\5.0.0-1.25277.114\contentFiles\cs\netstandard2.0\ArrayBuilder.cs (2)
204public int IndexOf(T item, IEqualityComparer<T> equalityComparer) 546internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\msbuild\artifacts\.packages\microsoft.codeanalysis.pooledobjects\5.0.0-1.25277.114\contentFiles\cs\netstandard2.0\PooledDictionary.cs (2)
23private PooledDictionary(ObjectPool<PooledDictionary<K, V>> pool, IEqualityComparer<K> keyComparer) 48public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K> keyComparer)
src\msbuild\artifacts\.packages\microsoft.codeanalysis.pooledobjects\5.0.0-1.25277.114\contentFiles\cs\netstandard2.0\PooledHashSet.cs (2)
21private PooledHashSet(ObjectPool<PooledHashSet<T>> pool, IEqualityComparer<T> equalityComparer) : 37public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T> equalityComparer)
Microsoft.Build.Framework (34)
BackEnd\TranslatorHelpers.cs (8)
88IEqualityComparer<string> comparer, 97IEqualityComparer<string> comparer) 111IEqualityComparer<string> stringComparer, 128IEqualityComparer<string> comparer) 144IEqualityComparer<string> stringComparer, 182IEqualityComparer<string> comparer) 196IEqualityComparer<string> comparer) 245IEqualityComparer<string> comparer)
BinaryTranslator.cs (8)
595public void TranslateDictionary(ref Dictionary<string, string> dictionary, IEqualityComparer<string> comparer) 617public void TranslateDictionary(ref IDictionary<string, string> dictionary, IEqualityComparer<string> comparer, ref Dictionary<string, string> additionalEntries, HashSet<string> additionalEntriesKeys) 724public void TranslateDictionary<T>(ref Dictionary<string, T> dictionary, IEqualityComparer<string> comparer, ObjectTranslatorWithValueFactory<T> objectTranslator, NodePacketValueFactory<T> valueFactory) 821public void WithInterning(IEqualityComparer<string> comparer, int initialCapacity, Action<ITranslator> internBlock) 1436public void TranslateDictionary(ref Dictionary<string, string> dictionary, IEqualityComparer<string> comparer) 1453public void TranslateDictionary(ref IDictionary<string, string> dictionary, IEqualityComparer<string> comparer, ref Dictionary<string, string> additionalEntries, HashSet<string> additionalEntriesKeys) 1576public void TranslateDictionary<T>(ref Dictionary<string, T> dictionary, IEqualityComparer<string> comparer, ObjectTranslatorWithValueFactory<T> objectTranslator, NodePacketValueFactory<T> valueFactory) 1676public void WithInterning(IEqualityComparer<string> comparer, int initialCapacity, Action<ITranslator> internBlock)
BuildCheck\EnumerableExtensions.cs (3)
40public static HashSet<T> NewHashSet<T>(IEqualityComparer<T> equalityComparer) 43public static HashSet<T> NewHashSet<T>(int capacity, IEqualityComparer<T>? equalityComparer) 52public static HashSet<T>? ToHashSet<T>(this ICollection<T>? source, IEqualityComparer<T>? equalityComparer = null)
Collections\CopyOnWriteDictionary.cs (5)
62internal CopyOnWriteDictionary(IEqualityComparer<string>? keyComparer) 75object comparer = info.GetValue(nameof(Comparer), typeof(IEqualityComparer<string>))!; 77var b = GetInitialDictionary((IEqualityComparer<string>?)comparer); 82private static ImmutableDictionary<string, V> GetInitialDictionary(IEqualityComparer<string>? keyComparer) 164internal IEqualityComparer<string> Comparer
InterningWriteTranslator.cs (1)
65internal void Setup(IEqualityComparer<string> comparer, int initialCapacity)
ITranslator.cs (4)
345void TranslateDictionary(ref Dictionary<string, string> dictionary, IEqualityComparer<string> comparer); 364void TranslateDictionary(ref IDictionary<string, string> dictionary, IEqualityComparer<string> comparer, ref Dictionary<string, string> additionalEntries, HashSet<string> additionalEntriesKeys); 382void TranslateDictionary<T>(ref Dictionary<string, T> dictionary, IEqualityComparer<string> comparer, ObjectTranslatorWithValueFactory<T> objectTranslator, NodePacketValueFactory<T> valueFactory) 437void WithInterning(IEqualityComparer<string> comparer, int initialCapacity, Action<ITranslator> internBlock);
Utilities\AssemblyNameComparer.cs (4)
31internal static readonly IEqualityComparer<AssemblyNameExtension> GenericComparer = Comparer as IEqualityComparer<AssemblyNameExtension>; 36internal static readonly IEqualityComparer<AssemblyNameExtension> GenericComparerConsiderRetargetable = ComparerConsiderRetargetable as IEqualityComparer<AssemblyNameExtension>;
Utilities\CollectionHelpers.cs (1)
57internal static bool DictionaryEquals<K, V>(IReadOnlyDictionary<K, V> a, IReadOnlyDictionary<K, V> b, IEqualityComparer<V> valueComparer = null)
Microsoft.Build.NuGetSdkResolver (2)
FileSystemInfoFullNameEqualityComparer.cs (1)
13/// Represents an implementation of <see cref="IEqualityComparer{T}" /> that compares <see cref="FileSystemInfo" /> objects by the value of their <see cref="FileSystemInfo.FullName" /> property.
src\nuget-client\build\Shared\SharedExtensions.cs (1)
34public static HashSet<T>? AsHashSet<T>(this ISet<T> enumerable, IEqualityComparer<T>? comparer = null)
Microsoft.Build.Tasks.Git (1)
GitDataReader\GitIgnore.cs (1)
93private IEqualityComparer<string> PathComparer
Microsoft.CodeAnalysis (185)
Binding\AbstractLookupSymbolsInfo.cs (2)
230private readonly IEqualityComparer<string> _comparer; 234protected AbstractLookupSymbolsInfo(IEqualityComparer<string> comparer)
Collections\ByteSequenceComparer.cs (4)
107bool IEqualityComparer<byte[]>.Equals(byte[]? x, byte[]? y) 112int IEqualityComparer<byte[]>.GetHashCode(byte[] x) 117bool IEqualityComparer<ImmutableArray<byte>>.Equals(ImmutableArray<byte> x, ImmutableArray<byte> y) 122int IEqualityComparer<ImmutableArray<byte>>.GetHashCode(ImmutableArray<byte> x)
Collections\CachingDictionary.cs (4)
34private readonly Func<IEqualityComparer<TKey>, SegmentedHashSet<TKey>> _getKeys; 35private readonly IEqualityComparer<TKey> _comparer; 57Func<IEqualityComparer<TKey>, SegmentedHashSet<TKey>> getKeys, 58IEqualityComparer<TKey> comparer)
Collections\ConcurrentCache.cs (2)
15private readonly IEqualityComparer<TKey> _keyComparer; 32public ConcurrentCache(int size, IEqualityComparer<TKey> keyComparer)
Collections\SmallDictionary.cs (3)
39public readonly IEqualityComparer<K> Comparer; 46public SmallDictionary(IEqualityComparer<K> comparer) 51public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
CommandLine\AnalyzerConfig.cs (1)
311public static IEqualityComparer<string> NameEqualityComparer { get; } = StringComparer.Ordinal;
DiagnosticAnalyzer\AdditionalTextValueProvider.cs (1)
23public AdditionalTextValueProvider(Func<AdditionalText, TValue> computeValue, IEqualityComparer<AdditionalText>? additionalTextComparer = null)
DiagnosticAnalyzer\AnalysisValueProvider.cs (2)
23internal IEqualityComparer<TKey> KeyComparer { get; private set; } 25public AnalysisValueProvider(Func<TKey, TValue> computeValue, IEqualityComparer<TKey> keyComparer)
DiagnosticAnalyzer\SourceTextValueProvider.cs (1)
24public SourceTextValueProvider(Func<SourceText, TValue> computeValue, IEqualityComparer<SourceText>? sourceTextComparer = null)
DiagnosticAnalyzer\SyntaxTreeValueProvider.cs (1)
23public SyntaxTreeValueProvider(Func<SyntaxTree, TValue> computeValue, IEqualityComparer<SyntaxTree>? syntaxTreeComparer = null)
Emit\EditAndContinue\DeltaMetadataWriter.cs (3)
260private static Dictionary<K, V> CreateDictionary<K, V>(IReadOnlyDictionary<K, V> dictionary, IEqualityComparer<K>? comparer) 272private static IReadOnlyDictionary<K, V> AddRange<K, V>(IReadOnlyDictionary<K, V> previous, IReadOnlyDictionary<K, V> current, IEqualityComparer<K>? comparer = null) 1513public DefinitionIndexBase(int lastRowId, IEqualityComparer<T>? comparer = null)
FileSystem\PathUtilities.cs (1)
916public static readonly IEqualityComparer<string> Comparer = new PathComparer();
InternalUtilities\ConcurrentSet.cs (1)
49public ConcurrentSet(IEqualityComparer<T> equalityComparer)
InternalUtilities\IReadOnlyListExtensions.cs (1)
11public static bool Contains<T>(this IReadOnlyList<T> list, T item, IEqualityComparer<T>? comparer = null)
InternalUtilities\MultiDictionary.cs (8)
103private readonly IEqualityComparer<V> _equalityComparer; 131public ValueSet(object? value, IEqualityComparer<V>? equalityComparer = null) 181public bool Contains(V v, IEqualityComparer<V> comparer) 208private readonly IEqualityComparer<V>? _valueComparer; 234public MultiDictionary(IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null) 247public MultiDictionary(int capacity, IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null)
InternalUtilities\StringOrdinalComparer.cs (2)
25bool IEqualityComparer<string>.Equals(string? a, string? b) 36int IEqualityComparer<string>.GetHashCode(string s)
PEWriter\MetadataWriter.cs (3)
4352public InstanceAndStructuralReferenceIndex(MetadataWriter writer, IEqualityComparer<T> structuralComparer, int lastRowId = 0) 4388bool IEqualityComparer<(ImmutableArray<byte>, bool)>.Equals((ImmutableArray<byte>, bool) x, (ImmutableArray<byte>, bool) y) 4393int IEqualityComparer<(ImmutableArray<byte>, bool)>.GetHashCode((ImmutableArray<byte>, bool) x)
SourceGeneration\Nodes\AbstractSourceOutputNode.cs (1)
94IIncrementalGeneratorNode<TOutput> IIncrementalGeneratorNode<TOutput>.WithComparer(IEqualityComparer<TOutput> comparer) => throw ExceptionUtilities.Unreachable();
SourceGeneration\Nodes\BatchNode.cs (3)
19private readonly IEqualityComparer<ImmutableArray<TInput>>? _comparer; 22public BatchNode(IIncrementalGeneratorNode<TInput> sourceNode, IEqualityComparer<ImmutableArray<TInput>>? comparer = null, string? name = null) 29public IIncrementalGeneratorNode<ImmutableArray<TInput>> WithComparer(IEqualityComparer<ImmutableArray<TInput>> comparer) => new BatchNode<TInput>(_sourceNode, comparer, _name);
SourceGeneration\Nodes\CombineNode.cs (3)
20private readonly IEqualityComparer<(TInput1, TInput2)>? _comparer; 23public CombineNode(IIncrementalGeneratorNode<TInput1> input1, IIncrementalGeneratorNode<TInput2> input2, IEqualityComparer<(TInput1, TInput2)>? comparer = null, string? name = null) 103public IIncrementalGeneratorNode<(TInput1, TInput2)> WithComparer(IEqualityComparer<(TInput1, TInput2)> comparer) => new CombineNode<TInput1, TInput2>(_input1, _input2, comparer, _name);
SourceGeneration\Nodes\DriverStateTable.cs (1)
107NodeStateTable<T>? previousTable, string? stepName, IEqualityComparer<T>? equalityComparer, int? tableCapacity = null)
SourceGeneration\Nodes\HostOutputNode.cs (1)
98IIncrementalGeneratorNode<OutputType> IIncrementalGeneratorNode<OutputType>.WithComparer(IEqualityComparer<OutputType> comparer) => throw ExceptionUtilities.Unreachable();
SourceGeneration\Nodes\IIncrementalGeneratorNode.cs (1)
18IIncrementalGeneratorNode<T> WithComparer(IEqualityComparer<T> comparer);
SourceGeneration\Nodes\InputNode.cs (5)
26private readonly IEqualityComparer<T>? _comparer; 30public InputNode(Func<DriverStateTable.Builder, ImmutableArray<T>> getInput, IEqualityComparer<T>? inputComparer = null) 39IEqualityComparer<T>? comparer = null, 49private static ObjectPool<PooledHashSet<T>>? CreateHashSetPool(IEqualityComparer<T>? inputComparer) 171public IIncrementalGeneratorNode<T> WithComparer(IEqualityComparer<T> comparer) => new InputNode<T>(_getInput, _registerOutput, _hashSetPool, comparer, _name);
SourceGeneration\Nodes\ISyntaxStrategy.cs (1)
15ISyntaxInputBuilder GetBuilder(StateTableStore tableStore, object key, bool trackIncrementalSteps, string? name, IEqualityComparer<T> comparer);
SourceGeneration\Nodes\NodeStateTable.cs (5)
184public Builder ToBuilder(string? stepName, bool stepTrackingEnabled, IEqualityComparer<T>? equalityComparer = null, int? tableCapacity = null) 187public NodeStateTable<T> CreateCachedTableWithUpdatedSteps<TInput>(NodeStateTable<TInput> inputTable, string? stepName, IEqualityComparer<T>? equalityComparer) 233private readonly IEqualityComparer<T> _equalityComparer; 249IEqualityComparer<T>? equalityComparer, 612public bool Matches(TableEntry entry, IEqualityComparer<T> equalityComparer)
SourceGeneration\Nodes\PredicateSyntaxStrategy.cs (3)
33public ISyntaxInputBuilder GetBuilder(StateTableStore table, object key, bool trackIncrementalSteps, string? name, IEqualityComparer<T> comparer) => new Builder(this, key, table, trackIncrementalSteps, name, comparer); 39private readonly IEqualityComparer<T> _comparer; 45public Builder(PredicateSyntaxStrategy<T> owner, object key, StateTableStore table, bool trackIncrementalSteps, string? name, IEqualityComparer<T> comparer)
SourceGeneration\Nodes\SyntaxInputNode.cs (3)
20private readonly IEqualityComparer<T> _comparer; 23internal SyntaxInputNode(ISyntaxSelectionStrategy<T> inputNode, Action<SyntaxInputNode, IIncrementalGeneratorOutputNode> registerOutput, IEqualityComparer<T>? comparer = null, string? name = null) 44public IIncrementalGeneratorNode<T> WithComparer(IEqualityComparer<T> comparer) => new SyntaxInputNode<T>(_inputNode, _registerOutput, comparer, _name);
SourceGeneration\Nodes\SyntaxReceiverStrategy.cs (1)
30public ISyntaxInputBuilder GetBuilder(StateTableStore table, object key, bool trackIncrementalSteps, string? name, IEqualityComparer<T> comparer) => new Builder(this, key, table, trackIncrementalSteps);
SourceGeneration\Nodes\TransformNode.cs (4)
21private readonly IEqualityComparer<TOutput>? _comparer; 26public TransformNode(IIncrementalGeneratorNode<TInput> sourceNode, Func<TInput, CancellationToken, TOutput> userFunc, bool wrapUserFunc = false, IEqualityComparer<TOutput>? comparer = null, string? name = null) 31public TransformNode(IIncrementalGeneratorNode<TInput> sourceNode, Func<TInput, CancellationToken, ImmutableArray<TOutput>> userFunc, bool wrapUserFunc = false, IEqualityComparer<TOutput>? comparer = null, string? name = null) 40public IIncrementalGeneratorNode<TOutput> WithComparer(IEqualityComparer<TOutput> comparer)
SourceGeneration\Nodes\ValueSourceExtensions.cs (4)
124/// Specifies a custom <see cref="IEqualityComparer{T}"/> to use when comparing values from this provider for caching purposes. 132public static IncrementalValueProvider<TSource> WithComparer<TSource>(this IncrementalValueProvider<TSource> source, IEqualityComparer<TSource> comparer) => new IncrementalValueProvider<TSource>(source.Node.WithComparer(comparer.WrapUserComparer(source.CatchAnalyzerExceptions)), source.CatchAnalyzerExceptions); 135/// Specifies a custom <see cref="IEqualityComparer{T}"/> to use when comparing values from this provider for caching purposes. 143public static IncrementalValuesProvider<TSource> WithComparer<TSource>(this IncrementalValuesProvider<TSource> source, IEqualityComparer<TSource> comparer) => new IncrementalValuesProvider<TSource>(source.Node.WithComparer(comparer.WrapUserComparer(source.CatchAnalyzerExceptions)), source.CatchAnalyzerExceptions);
SourceGeneration\UserFunction.cs (4)
27private readonly IEqualityComparer<T> _inner; 31public WrappedUserComparer(IEqualityComparer<T> inner) 113internal static IEqualityComparer<T> WrapUserComparer<T>(this IEqualityComparer<T> comparer, bool catchAnalyzerExceptions)
src\roslyn\src\Dependencies\Collections\Extensions\IEnumerableExtensions.cs (11)
105public static bool SetEquals<T>(this IEnumerable<T> source1, IEnumerable<T> source2, IEqualityComparer<T>? comparer) 135public static ISet<T> ToSet<T>(this IEnumerable<T> source, IEqualityComparer<T>? comparer) 258public static bool HasDuplicates<T>(this IEnumerable<T> source, IEqualityComparer<T> comparer) 271/// <seealso cref="Microsoft.CodeAnalysis.ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 273public static bool HasDuplicates<TItem, TValue>(this IEnumerable<TItem> source, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 615public static int IndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 624private static int EnumeratingIndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 640public static int IndexOf<T>(this IReadOnlyList<T> list, T value, IEqualityComparer<T> comparer) 698public static ImmutableDictionary<K, V> ToImmutableDictionaryOrEmpty<K, V>(this IEnumerable<KeyValuePair<K, V>>? items, IEqualityComparer<K>? keyComparer) 764internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IEnumerable<T> data, Func<T, K> keySelector, IEqualityComparer<K>? comparer = null) 945/// Variant of <see cref="System.Linq.Enumerable.SequenceEqual{TSource}(IEnumerable{TSource}, IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>
src\roslyn\src\Dependencies\Collections\Extensions\IListExtensions.cs (4)
18public static bool HasDuplicates<T>(this IReadOnlyList<T> list, IEqualityComparer<T> comparer) 31/// <seealso cref="ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(System.Collections.Immutable.ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 32/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 34internal static bool HasDuplicates<TItem, TValue>(this IReadOnlyList<TItem> list, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer)
src\roslyn\src\Dependencies\Collections\Extensions\ImmutableArrayExtensions.cs (9)
624public static bool SetEquals<T>(this ImmutableArray<T> array1, ImmutableArray<T> array2, IEqualityComparer<T> comparer) 754internal static bool HasDuplicates<T>(this ImmutableArray<T> array, IEqualityComparer<T> comparer) 767/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 769internal static bool HasDuplicates<TItem, TValue>(this ImmutableArray<TItem> array, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 861(Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> map, IEqualityComparer<TKey> comparer) 917internal static int IndexOf<T>(this ImmutableArray<T> array, T item, IEqualityComparer<T> comparer) 1186/// Specialization of <see cref="System.Linq.Enumerable.Distinct{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>. 1188public static ImmutableArray<T> Distinct<T>(this ImmutableArray<T> array, IEqualityComparer<T>? comparer = null) 1255/// Variant of <see cref="System.Collections.Immutable.ImmutableArray{T}.Contains(T, IEqualityComparer{T})"/>
src\roslyn\src\Dependencies\Collections\OneOrMany.cs (5)
191public bool SequenceEqual(OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 206public bool SequenceEqual(ImmutableArray<T> other, IEqualityComparer<T>? comparer = null) 209public bool SequenceEqual(IEnumerable<T> other, IEqualityComparer<T>? comparer = null) 281public static bool SequenceEqual<T>(this ImmutableArray<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 284public static bool SequenceEqual<T>(this IEnumerable<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary.cs (6)
23public static ImmutableSegmentedDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 31public static ImmutableSegmentedDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 39public static ImmutableSegmentedDictionary<TKey, TValue> CreateRange<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) 56public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> items, IEqualityComparer<TKey>? keyComparer) 72public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IEqualityComparer<TKey>? keyComparer) 90public static ImmutableSegmentedDictionary<TKey, TSource> ToImmutableSegmentedDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2.cs (2)
84public IEqualityComparer<TKey> KeyComparer => _dictionary.Comparer; 267public ImmutableSegmentedDictionary<TKey, TValue> WithComparer(IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+Builder.cs (1)
27public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+ValueBuilder.cs (1)
35public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet.cs (12)
27/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T})"/> 28public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer) 31/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T)"/> 32public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item) 35/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T[])"/> 36public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items) 43/// <inheritdoc cref="ImmutableHashSet.CreateBuilder{T}(IEqualityComparer{T}?)"/> 44public static ImmutableSegmentedHashSet<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer) 56/// <inheritdoc cref="ImmutableHashSet.CreateRange{T}(IEqualityComparer{T}?, IEnumerable{T})"/> 57public static ImmutableSegmentedHashSet<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items) 74/// <inheritdoc cref="ImmutableHashSet.ToImmutableHashSet{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/> 75public static ImmutableSegmentedHashSet<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1.cs (3)
79public IEqualityComparer<T> KeyComparer => _set.Comparer; 304/// <inheritdoc cref="ImmutableHashSet{T}.WithComparer(IEqualityComparer{T}?)"/> 305public ImmutableSegmentedHashSet<T> WithComparer(IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+Builder.cs (1)
27public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+ValueBuilder.cs (1)
38public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (11)
306public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 339public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 372/// <inheritdoc cref="ImmutableList{T}.Remove(T, IEqualityComparer{T}?)"/> 373public ImmutableSegmentedList<T> Remove(T value, IEqualityComparer<T>? equalityComparer) 427/// <inheritdoc cref="ImmutableList{T}.RemoveRange(IEnumerable{T}, IEqualityComparer{T}?)"/> 428public ImmutableSegmentedList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 481/// <inheritdoc cref="ImmutableList{T}.Replace(T, T, IEqualityComparer{T}?)"/> 482public ImmutableSegmentedList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 618IImmutableList<T> IImmutableList<T>.Remove(T value, IEqualityComparer<T>? equalityComparer) 624IImmutableList<T> IImmutableList<T>.RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 636IImmutableList<T> IImmutableList<T>.Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+Builder.cs (4)
157/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.IndexOf(T, int, int, IEqualityComparer{T}?)"/> 158public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 180/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.LastIndexOf(T, int, int, IEqualityComparer{T}?)"/> 181public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (2)
208public readonly int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 244public readonly int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedArray.cs (2)
216public static int IndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer) 281public static int LastIndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedDictionary`2.cs (10)
56private readonly IEqualityComparer<TKey>? _comparer; 78public SegmentedDictionary(IEqualityComparer<TKey>? comparer) 83public SegmentedDictionary(int capacity, IEqualityComparer<TKey>? comparer) 123public SegmentedDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey>? comparer) 139public SegmentedDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) 222public IEqualityComparer<TKey> Comparer 409var comparer = _comparer; 523var comparer = _comparer; 710var comparer = _comparer; 787var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedHashSet`1.cs (10)
63private readonly IEqualityComparer<T>? _comparer; 74public SegmentedHashSet() : this((IEqualityComparer<T>?)null) { } 76public SegmentedHashSet(IEqualityComparer<T>? comparer) 105public SegmentedHashSet(IEnumerable<T> collection, IEqualityComparer<T>? comparer) : this(comparer) 138public SegmentedHashSet(int capacity, IEqualityComparer<T>? comparer) : this(comparer) 230var comparer = _comparer; 301IEqualityComparer<T>? comparer = _comparer; 865public IEqualityComparer<T> Comparer 992public static IEqualityComparer<SegmentedHashSet<T>> CreateSetComparer() => new SegmentedHashSetEqualityComparer<T>(); 1028var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedList`1.cs (2)
840public int IndexOf(T item, int index, int count, IEqualityComparer<T>? comparer) 1031public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\TemporaryArray`1.cs (2)
252public readonly bool Contains(T value, IEqualityComparer<T>? equalityComparer = null) 255public readonly int IndexOf(T value, IEqualityComparer<T>? equalityComparer = null)
src\roslyn\src\Dependencies\PooledObjects\ArrayBuilder.cs (2)
209public int IndexOf(T item, IEqualityComparer<T> equalityComparer) 613internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\roslyn\src\Dependencies\PooledObjects\PooledDictionary.cs (2)
27private PooledDictionary(ObjectPool<PooledDictionary<K, V>> pool, IEqualityComparer<K> keyComparer) 52public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K> keyComparer)
src\roslyn\src\Dependencies\PooledObjects\PooledHashSet.cs (2)
25private PooledHashSet(ObjectPool<PooledHashSet<T>> pool, IEqualityComparer<T> equalityComparer) : 41public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T> equalityComparer)
Microsoft.CodeAnalysis.Analyzers (158)
src\7a47995420f988d7\AbstractRemoveUnnecessaryImportsService.cs (2)
43bool IEqualityComparer<T>.Equals(T? x, T? y) 46int IEqualityComparer<T>.GetHashCode(T obj)
src\roslyn\src\Compilers\Core\Portable\Collections\SmallDictionary.cs (3)
39public readonly IEqualityComparer<K> Comparer; 46public SmallDictionary(IEqualityComparer<K> comparer) 51public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
916public static readonly IEqualityComparer<string> Comparer = new PathComparer();
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ConcurrentSet.cs (1)
49public ConcurrentSet(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\MultiDictionary.cs (8)
103private readonly IEqualityComparer<V> _equalityComparer; 131public ValueSet(object? value, IEqualityComparer<V>? equalityComparer = null) 181public bool Contains(V v, IEqualityComparer<V> comparer) 208private readonly IEqualityComparer<V>? _valueComparer; 234public MultiDictionary(IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null) 247public MultiDictionary(int capacity, IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null)
src\roslyn\src\Dependencies\Collections\Extensions\IEnumerableExtensions.cs (11)
105public static bool SetEquals<T>(this IEnumerable<T> source1, IEnumerable<T> source2, IEqualityComparer<T>? comparer) 135public static ISet<T> ToSet<T>(this IEnumerable<T> source, IEqualityComparer<T>? comparer) 258public static bool HasDuplicates<T>(this IEnumerable<T> source, IEqualityComparer<T> comparer) 271/// <seealso cref="Microsoft.CodeAnalysis.ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 273public static bool HasDuplicates<TItem, TValue>(this IEnumerable<TItem> source, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 615public static int IndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 624private static int EnumeratingIndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 640public static int IndexOf<T>(this IReadOnlyList<T> list, T value, IEqualityComparer<T> comparer) 698public static ImmutableDictionary<K, V> ToImmutableDictionaryOrEmpty<K, V>(this IEnumerable<KeyValuePair<K, V>>? items, IEqualityComparer<K>? keyComparer) 764internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IEnumerable<T> data, Func<T, K> keySelector, IEqualityComparer<K>? comparer = null) 945/// Variant of <see cref="System.Linq.Enumerable.SequenceEqual{TSource}(IEnumerable{TSource}, IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>
src\roslyn\src\Dependencies\Collections\Extensions\IListExtensions.cs (4)
18public static bool HasDuplicates<T>(this IReadOnlyList<T> list, IEqualityComparer<T> comparer) 31/// <seealso cref="ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(System.Collections.Immutable.ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 32/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 34internal static bool HasDuplicates<TItem, TValue>(this IReadOnlyList<TItem> list, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer)
src\roslyn\src\Dependencies\Collections\Extensions\ImmutableArrayExtensions.cs (9)
624public static bool SetEquals<T>(this ImmutableArray<T> array1, ImmutableArray<T> array2, IEqualityComparer<T> comparer) 754internal static bool HasDuplicates<T>(this ImmutableArray<T> array, IEqualityComparer<T> comparer) 767/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 769internal static bool HasDuplicates<TItem, TValue>(this ImmutableArray<TItem> array, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 861(Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> map, IEqualityComparer<TKey> comparer) 917internal static int IndexOf<T>(this ImmutableArray<T> array, T item, IEqualityComparer<T> comparer) 1186/// Specialization of <see cref="System.Linq.Enumerable.Distinct{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>. 1188public static ImmutableArray<T> Distinct<T>(this ImmutableArray<T> array, IEqualityComparer<T>? comparer = null) 1255/// Variant of <see cref="System.Collections.Immutable.ImmutableArray{T}.Contains(T, IEqualityComparer{T})"/>
src\roslyn\src\Dependencies\Collections\OneOrMany.cs (5)
191public bool SequenceEqual(OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 206public bool SequenceEqual(ImmutableArray<T> other, IEqualityComparer<T>? comparer = null) 209public bool SequenceEqual(IEnumerable<T> other, IEqualityComparer<T>? comparer = null) 281public static bool SequenceEqual<T>(this ImmutableArray<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 284public static bool SequenceEqual<T>(this IEnumerable<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary.cs (6)
23public static ImmutableSegmentedDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 31public static ImmutableSegmentedDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 39public static ImmutableSegmentedDictionary<TKey, TValue> CreateRange<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) 56public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> items, IEqualityComparer<TKey>? keyComparer) 72public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IEqualityComparer<TKey>? keyComparer) 90public static ImmutableSegmentedDictionary<TKey, TSource> ToImmutableSegmentedDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2.cs (2)
84public IEqualityComparer<TKey> KeyComparer => _dictionary.Comparer; 267public ImmutableSegmentedDictionary<TKey, TValue> WithComparer(IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+Builder.cs (1)
27public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+ValueBuilder.cs (1)
35public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet.cs (12)
27/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T})"/> 28public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer) 31/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T)"/> 32public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item) 35/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T[])"/> 36public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items) 43/// <inheritdoc cref="ImmutableHashSet.CreateBuilder{T}(IEqualityComparer{T}?)"/> 44public static ImmutableSegmentedHashSet<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer) 56/// <inheritdoc cref="ImmutableHashSet.CreateRange{T}(IEqualityComparer{T}?, IEnumerable{T})"/> 57public static ImmutableSegmentedHashSet<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items) 74/// <inheritdoc cref="ImmutableHashSet.ToImmutableHashSet{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/> 75public static ImmutableSegmentedHashSet<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1.cs (3)
79public IEqualityComparer<T> KeyComparer => _set.Comparer; 304/// <inheritdoc cref="ImmutableHashSet{T}.WithComparer(IEqualityComparer{T}?)"/> 305public ImmutableSegmentedHashSet<T> WithComparer(IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+Builder.cs (1)
27public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+ValueBuilder.cs (1)
38public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (11)
306public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 339public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 372/// <inheritdoc cref="ImmutableList{T}.Remove(T, IEqualityComparer{T}?)"/> 373public ImmutableSegmentedList<T> Remove(T value, IEqualityComparer<T>? equalityComparer) 427/// <inheritdoc cref="ImmutableList{T}.RemoveRange(IEnumerable{T}, IEqualityComparer{T}?)"/> 428public ImmutableSegmentedList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 481/// <inheritdoc cref="ImmutableList{T}.Replace(T, T, IEqualityComparer{T}?)"/> 482public ImmutableSegmentedList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 618IImmutableList<T> IImmutableList<T>.Remove(T value, IEqualityComparer<T>? equalityComparer) 624IImmutableList<T> IImmutableList<T>.RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 636IImmutableList<T> IImmutableList<T>.Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+Builder.cs (4)
157/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.IndexOf(T, int, int, IEqualityComparer{T}?)"/> 158public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 180/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.LastIndexOf(T, int, int, IEqualityComparer{T}?)"/> 181public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (2)
208public readonly int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 244public readonly int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedArray.cs (2)
216public static int IndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer) 281public static int LastIndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedDictionary`2.cs (10)
62private readonly IEqualityComparer<TKey> _comparer; 78public SegmentedDictionary(IEqualityComparer<TKey>? comparer) 83public SegmentedDictionary(int capacity, IEqualityComparer<TKey>? comparer) 123public SegmentedDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey>? comparer) 139public SegmentedDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) 222public IEqualityComparer<TKey> Comparer 409var comparer = _comparer; 523var comparer = _comparer; 710var comparer = _comparer; 787var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedHashSet`1.cs (10)
69private readonly IEqualityComparer<T> _comparer; 74public SegmentedHashSet() : this((IEqualityComparer<T>?)null) { } 76public SegmentedHashSet(IEqualityComparer<T>? comparer) 105public SegmentedHashSet(IEnumerable<T> collection, IEqualityComparer<T>? comparer) : this(comparer) 138public SegmentedHashSet(int capacity, IEqualityComparer<T>? comparer) : this(comparer) 230var comparer = _comparer; 301IEqualityComparer<T>? comparer = _comparer; 865public IEqualityComparer<T> Comparer 992public static IEqualityComparer<SegmentedHashSet<T>> CreateSetComparer() => new SegmentedHashSetEqualityComparer<T>(); 1028var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedList`1.cs (2)
840public int IndexOf(T item, int index, int count, IEqualityComparer<T>? comparer) 1031public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\TemporaryArray`1.cs (2)
252public readonly bool Contains(T value, IEqualityComparer<T>? equalityComparer = null) 255public readonly int IndexOf(T value, IEqualityComparer<T>? equalityComparer = null)
src\roslyn\src\Dependencies\PooledObjects\ArrayBuilder.cs (2)
209public int IndexOf(T item, IEqualityComparer<T> equalityComparer) 613internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\roslyn\src\Dependencies\PooledObjects\PooledDictionary.cs (2)
27private PooledDictionary(ObjectPool<PooledDictionary<K, V>> pool, IEqualityComparer<K> keyComparer) 52public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K> keyComparer)
src\roslyn\src\Dependencies\PooledObjects\PooledHashSet.cs (2)
25private PooledHashSet(ObjectPool<PooledHashSet<T>> pool, IEqualityComparer<T> equalityComparer) : 41public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`1.cs (1)
20IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`2.cs (2)
39private readonly IEqualityComparer<TItem>? _equalityComparer; 114IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledConcurrentDictionary.cs (5)
29private PooledConcurrentDictionary(ObjectPool<PooledConcurrentDictionary<K, V>>? pool, IEqualityComparer<K> keyComparer) 52private static readonly ConcurrentDictionary<IEqualityComparer<K>, ObjectPool<PooledConcurrentDictionary<K, V>>> s_poolInstancesByComparer = new(); 55public static ObjectPool<PooledConcurrentDictionary<K, V>> CreatePool(IEqualityComparer<K>? keyComparer = null) 66public static PooledConcurrentDictionary<K, V> GetInstance(IEqualityComparer<K>? keyComparer = null) 76public static PooledConcurrentDictionary<K, V> GetInstance(IEnumerable<KeyValuePair<K, V>> initializer, IEqualityComparer<K>? keyComparer = null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledConcurrentSet.cs (2)
33public static PooledConcurrentSet<T> GetInstance(IEqualityComparer<T>? comparer = null) 39public static PooledConcurrentSet<T> GetInstance(IEnumerable<T> initializer, IEqualityComparer<T>? comparer = null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledDictionary.cs (4)
24Func<KeyValuePair<K, V>, TKey> keySelector, Func<KeyValuePair<K, V>, TValue> elementSelector, IEqualityComparer<TKey> comparer) 42private static readonly ConcurrentDictionary<IEqualityComparer<K>, ObjectPool<PooledDictionary<K, V>>> s_poolInstancesByComparer 46IEqualityComparer<K>? keyComparer 67IEqualityComparer<K>? keyComparer = null
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\RoslynHashCode.cs (1)
316public void Add<T>(T value, IEqualityComparer<T>? comparer)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\SmallDictionary.cs (3)
41public readonly IEqualityComparer<K> Comparer; 48public SmallDictionary(IEqualityComparer<K> comparer) 53public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ImmutableArrayExtensions.cs (1)
21public static bool Contains<T>(this ImmutableArray<T> items, T item, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (2)
46bool IEqualityComparer<TSyntaxNode>.Equals([AllowNull] TSyntaxNode x, [AllowNull] TSyntaxNode y) 49int IEqualityComparer<TSyntaxNode>.GetHashCode([DisallowNull] TSyntaxNode obj)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
133/// Returns an <see cref="IEqualityComparer{T}"/> that determines if two <see cref="SymbolKey"/>s 145public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase = false, bool ignoreAssemblyKeys = false)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (2)
52public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase, bool ignoreAssemblyKey) 63public static IEqualityComparer<SymbolKey> GetComparer(ComparisonOptions options)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AsyncPriorityWorkQueue.cs (1)
75IEqualityComparer<TItem> equalityComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\BidirectionalMap.cs (4)
23public BidirectionalMap(IEnumerable<KeyValuePair<TKey, TValue>> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null) 29public BidirectionalMap(IEnumerable<(TKey key, TValue value)> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\IDictionaryExtensions.cs (1)
100public static bool MultiAdd<TKey, TValue>(this IDictionary<TKey, ImmutableHashSet<TValue>> dictionary, TKey key, TValue value, IEqualityComparer<TValue>? comparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ReferenceCountedDisposableCache.cs (1)
26public ReferenceCountedDisposableCache(IEqualityComparer<TKey> comparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (2)
25private IEqualityComparer<IParameterSymbol> ParameterEquivalenceComparer => _symbolEquivalenceComparer.ParameterEquivalenceComparer; 27private IEqualityComparer<ITypeSymbol> SignatureTypeEquivalenceComparer => _symbolEquivalenceComparer.SignatureTypeEquivalenceComparer;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
15public static readonly IEqualityComparer<IAssemblySymbol> Instance = new SimpleNameAssemblyComparer();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (2)
50private readonly IEqualityComparer<IAssemblySymbol>? _assemblyComparer; 62IEqualityComparer<IAssemblySymbol>? assemblyComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\FindSymbols\LinkedFileReferenceLocationEqualityComparer.cs (1)
16public static readonly IEqualityComparer<ReferenceLocation> Instance = new LinkedFileReferenceLocationEqualityComparer();
Microsoft.CodeAnalysis.AnalyzerUtilities (155)
src\roslyn\src\Compilers\Core\Portable\Collections\SmallDictionary.cs (3)
39public readonly IEqualityComparer<K> Comparer; 46public SmallDictionary(IEqualityComparer<K> comparer) 51public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
916public static readonly IEqualityComparer<string> Comparer = new PathComparer();
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ConcurrentSet.cs (1)
49public ConcurrentSet(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\MultiDictionary.cs (8)
103private readonly IEqualityComparer<V> _equalityComparer; 131public ValueSet(object? value, IEqualityComparer<V>? equalityComparer = null) 181public bool Contains(V v, IEqualityComparer<V> comparer) 208private readonly IEqualityComparer<V>? _valueComparer; 234public MultiDictionary(IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null) 247public MultiDictionary(int capacity, IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null)
src\roslyn\src\Dependencies\Collections\Extensions\IEnumerableExtensions.cs (11)
105public static bool SetEquals<T>(this IEnumerable<T> source1, IEnumerable<T> source2, IEqualityComparer<T>? comparer) 135public static ISet<T> ToSet<T>(this IEnumerable<T> source, IEqualityComparer<T>? comparer) 258public static bool HasDuplicates<T>(this IEnumerable<T> source, IEqualityComparer<T> comparer) 271/// <seealso cref="Microsoft.CodeAnalysis.ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 273public static bool HasDuplicates<TItem, TValue>(this IEnumerable<TItem> source, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 615public static int IndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 624private static int EnumeratingIndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 640public static int IndexOf<T>(this IReadOnlyList<T> list, T value, IEqualityComparer<T> comparer) 698public static ImmutableDictionary<K, V> ToImmutableDictionaryOrEmpty<K, V>(this IEnumerable<KeyValuePair<K, V>>? items, IEqualityComparer<K>? keyComparer) 764internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IEnumerable<T> data, Func<T, K> keySelector, IEqualityComparer<K>? comparer = null) 945/// Variant of <see cref="System.Linq.Enumerable.SequenceEqual{TSource}(IEnumerable{TSource}, IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>
src\roslyn\src\Dependencies\Collections\Extensions\IListExtensions.cs (4)
18public static bool HasDuplicates<T>(this IReadOnlyList<T> list, IEqualityComparer<T> comparer) 31/// <seealso cref="ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(System.Collections.Immutable.ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 32/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 34internal static bool HasDuplicates<TItem, TValue>(this IReadOnlyList<TItem> list, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer)
src\roslyn\src\Dependencies\Collections\Extensions\ImmutableArrayExtensions.cs (9)
624public static bool SetEquals<T>(this ImmutableArray<T> array1, ImmutableArray<T> array2, IEqualityComparer<T> comparer) 754internal static bool HasDuplicates<T>(this ImmutableArray<T> array, IEqualityComparer<T> comparer) 767/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 769internal static bool HasDuplicates<TItem, TValue>(this ImmutableArray<TItem> array, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 861(Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> map, IEqualityComparer<TKey> comparer) 917internal static int IndexOf<T>(this ImmutableArray<T> array, T item, IEqualityComparer<T> comparer) 1186/// Specialization of <see cref="System.Linq.Enumerable.Distinct{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>. 1188public static ImmutableArray<T> Distinct<T>(this ImmutableArray<T> array, IEqualityComparer<T>? comparer = null) 1255/// Variant of <see cref="System.Collections.Immutable.ImmutableArray{T}.Contains(T, IEqualityComparer{T})"/>
src\roslyn\src\Dependencies\Collections\OneOrMany.cs (5)
191public bool SequenceEqual(OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 206public bool SequenceEqual(ImmutableArray<T> other, IEqualityComparer<T>? comparer = null) 209public bool SequenceEqual(IEnumerable<T> other, IEqualityComparer<T>? comparer = null) 281public static bool SequenceEqual<T>(this ImmutableArray<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 284public static bool SequenceEqual<T>(this IEnumerable<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary.cs (6)
23public static ImmutableSegmentedDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 31public static ImmutableSegmentedDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 39public static ImmutableSegmentedDictionary<TKey, TValue> CreateRange<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) 56public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> items, IEqualityComparer<TKey>? keyComparer) 72public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IEqualityComparer<TKey>? keyComparer) 90public static ImmutableSegmentedDictionary<TKey, TSource> ToImmutableSegmentedDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2.cs (2)
84public IEqualityComparer<TKey> KeyComparer => _dictionary.Comparer; 267public ImmutableSegmentedDictionary<TKey, TValue> WithComparer(IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+Builder.cs (1)
27public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+ValueBuilder.cs (1)
35public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet.cs (12)
27/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T})"/> 28public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer) 31/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T)"/> 32public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item) 35/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T[])"/> 36public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items) 43/// <inheritdoc cref="ImmutableHashSet.CreateBuilder{T}(IEqualityComparer{T}?)"/> 44public static ImmutableSegmentedHashSet<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer) 56/// <inheritdoc cref="ImmutableHashSet.CreateRange{T}(IEqualityComparer{T}?, IEnumerable{T})"/> 57public static ImmutableSegmentedHashSet<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items) 74/// <inheritdoc cref="ImmutableHashSet.ToImmutableHashSet{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/> 75public static ImmutableSegmentedHashSet<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1.cs (3)
79public IEqualityComparer<T> KeyComparer => _set.Comparer; 304/// <inheritdoc cref="ImmutableHashSet{T}.WithComparer(IEqualityComparer{T}?)"/> 305public ImmutableSegmentedHashSet<T> WithComparer(IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+Builder.cs (1)
27public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+ValueBuilder.cs (1)
38public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (11)
306public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 339public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 372/// <inheritdoc cref="ImmutableList{T}.Remove(T, IEqualityComparer{T}?)"/> 373public ImmutableSegmentedList<T> Remove(T value, IEqualityComparer<T>? equalityComparer) 427/// <inheritdoc cref="ImmutableList{T}.RemoveRange(IEnumerable{T}, IEqualityComparer{T}?)"/> 428public ImmutableSegmentedList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 481/// <inheritdoc cref="ImmutableList{T}.Replace(T, T, IEqualityComparer{T}?)"/> 482public ImmutableSegmentedList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 618IImmutableList<T> IImmutableList<T>.Remove(T value, IEqualityComparer<T>? equalityComparer) 624IImmutableList<T> IImmutableList<T>.RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 636IImmutableList<T> IImmutableList<T>.Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+Builder.cs (4)
157/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.IndexOf(T, int, int, IEqualityComparer{T}?)"/> 158public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 180/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.LastIndexOf(T, int, int, IEqualityComparer{T}?)"/> 181public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (2)
208public readonly int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 244public readonly int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedArray.cs (2)
216public static int IndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer) 281public static int LastIndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedDictionary`2.cs (10)
62private readonly IEqualityComparer<TKey> _comparer; 78public SegmentedDictionary(IEqualityComparer<TKey>? comparer) 83public SegmentedDictionary(int capacity, IEqualityComparer<TKey>? comparer) 123public SegmentedDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey>? comparer) 139public SegmentedDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) 222public IEqualityComparer<TKey> Comparer 409var comparer = _comparer; 523var comparer = _comparer; 710var comparer = _comparer; 787var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedHashSet`1.cs (10)
69private readonly IEqualityComparer<T> _comparer; 74public SegmentedHashSet() : this((IEqualityComparer<T>?)null) { } 76public SegmentedHashSet(IEqualityComparer<T>? comparer) 105public SegmentedHashSet(IEnumerable<T> collection, IEqualityComparer<T>? comparer) : this(comparer) 138public SegmentedHashSet(int capacity, IEqualityComparer<T>? comparer) : this(comparer) 230var comparer = _comparer; 301IEqualityComparer<T>? comparer = _comparer; 865public IEqualityComparer<T> Comparer 992public static IEqualityComparer<SegmentedHashSet<T>> CreateSetComparer() => new SegmentedHashSetEqualityComparer<T>(); 1028var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedList`1.cs (2)
840public int IndexOf(T item, int index, int count, IEqualityComparer<T>? comparer) 1031public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\TemporaryArray`1.cs (2)
252public readonly bool Contains(T value, IEqualityComparer<T>? equalityComparer = null) 255public readonly int IndexOf(T value, IEqualityComparer<T>? equalityComparer = null)
src\roslyn\src\Dependencies\PooledObjects\ArrayBuilder.cs (2)
209public int IndexOf(T item, IEqualityComparer<T> equalityComparer) 613internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\roslyn\src\Dependencies\PooledObjects\PooledDictionary.cs (2)
27private PooledDictionary(ObjectPool<PooledDictionary<K, V>> pool, IEqualityComparer<K> keyComparer) 52public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K> keyComparer)
src\roslyn\src\Dependencies\PooledObjects\PooledHashSet.cs (2)
25private PooledHashSet(ObjectPool<PooledHashSet<T>> pool, IEqualityComparer<T> equalityComparer) : 41public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`1.cs (1)
20IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`2.cs (2)
39private readonly IEqualityComparer<TItem>? _equalityComparer; 114IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledConcurrentDictionary.cs (5)
29private PooledConcurrentDictionary(ObjectPool<PooledConcurrentDictionary<K, V>>? pool, IEqualityComparer<K> keyComparer) 52private static readonly ConcurrentDictionary<IEqualityComparer<K>, ObjectPool<PooledConcurrentDictionary<K, V>>> s_poolInstancesByComparer = new(); 55public static ObjectPool<PooledConcurrentDictionary<K, V>> CreatePool(IEqualityComparer<K>? keyComparer = null) 66public static PooledConcurrentDictionary<K, V> GetInstance(IEqualityComparer<K>? keyComparer = null) 76public static PooledConcurrentDictionary<K, V> GetInstance(IEnumerable<KeyValuePair<K, V>> initializer, IEqualityComparer<K>? keyComparer = null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledConcurrentSet.cs (2)
33public static PooledConcurrentSet<T> GetInstance(IEqualityComparer<T>? comparer = null) 39public static PooledConcurrentSet<T> GetInstance(IEnumerable<T> initializer, IEqualityComparer<T>? comparer = null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledDictionary.cs (4)
24Func<KeyValuePair<K, V>, TKey> keySelector, Func<KeyValuePair<K, V>, TValue> elementSelector, IEqualityComparer<TKey> comparer) 42private static readonly ConcurrentDictionary<IEqualityComparer<K>, ObjectPool<PooledDictionary<K, V>>> s_poolInstancesByComparer 46IEqualityComparer<K>? keyComparer 67IEqualityComparer<K>? keyComparer = null
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\RoslynHashCode.cs (1)
316public void Add<T>(T value, IEqualityComparer<T>? comparer)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\SmallDictionary.cs (3)
41public readonly IEqualityComparer<K> Comparer; 48public SmallDictionary(IEqualityComparer<K> comparer) 53public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ImmutableArrayExtensions.cs (1)
21public static bool Contains<T>(this ImmutableArray<T> items, T item, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (2)
46bool IEqualityComparer<TSyntaxNode>.Equals([AllowNull] TSyntaxNode x, [AllowNull] TSyntaxNode y) 49int IEqualityComparer<TSyntaxNode>.GetHashCode([DisallowNull] TSyntaxNode obj)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
133/// Returns an <see cref="IEqualityComparer{T}"/> that determines if two <see cref="SymbolKey"/>s 145public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase = false, bool ignoreAssemblyKeys = false)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (2)
52public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase, bool ignoreAssemblyKey) 63public static IEqualityComparer<SymbolKey> GetComparer(ComparisonOptions options)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AsyncPriorityWorkQueue.cs (1)
75IEqualityComparer<TItem> equalityComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\BidirectionalMap.cs (4)
23public BidirectionalMap(IEnumerable<KeyValuePair<TKey, TValue>> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null) 29public BidirectionalMap(IEnumerable<(TKey key, TValue value)> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\IDictionaryExtensions.cs (1)
100public static bool MultiAdd<TKey, TValue>(this IDictionary<TKey, ImmutableHashSet<TValue>> dictionary, TKey key, TValue value, IEqualityComparer<TValue>? comparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ReferenceCountedDisposableCache.cs (1)
26public ReferenceCountedDisposableCache(IEqualityComparer<TKey> comparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (2)
25private IEqualityComparer<IParameterSymbol> ParameterEquivalenceComparer => _symbolEquivalenceComparer.ParameterEquivalenceComparer; 27private IEqualityComparer<ITypeSymbol> SignatureTypeEquivalenceComparer => _symbolEquivalenceComparer.SignatureTypeEquivalenceComparer;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
15public static readonly IEqualityComparer<IAssemblySymbol> Instance = new SimpleNameAssemblyComparer();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (2)
50private readonly IEqualityComparer<IAssemblySymbol>? _assemblyComparer; 62IEqualityComparer<IAssemblySymbol>? assemblyComparer,
Microsoft.CodeAnalysis.CodeStyle (142)
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (2)
108bool IEqualityComparer<ISymbol>.Equals(ISymbol? x, ISymbol? y) 111int IEqualityComparer<ISymbol>.GetHashCode(ISymbol obj)
src\roslyn\src\Compilers\Core\Portable\Collections\SmallDictionary.cs (3)
39public readonly IEqualityComparer<K> Comparer; 46public SmallDictionary(IEqualityComparer<K> comparer) 51public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
916public static readonly IEqualityComparer<string> Comparer = new PathComparer();
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ConcurrentSet.cs (1)
49public ConcurrentSet(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\MultiDictionary.cs (8)
103private readonly IEqualityComparer<V> _equalityComparer; 131public ValueSet(object? value, IEqualityComparer<V>? equalityComparer = null) 181public bool Contains(V v, IEqualityComparer<V> comparer) 208private readonly IEqualityComparer<V>? _valueComparer; 234public MultiDictionary(IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null) 247public MultiDictionary(int capacity, IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null)
src\roslyn\src\Dependencies\Collections\Extensions\IEnumerableExtensions.cs (11)
105public static bool SetEquals<T>(this IEnumerable<T> source1, IEnumerable<T> source2, IEqualityComparer<T>? comparer) 135public static ISet<T> ToSet<T>(this IEnumerable<T> source, IEqualityComparer<T>? comparer) 258public static bool HasDuplicates<T>(this IEnumerable<T> source, IEqualityComparer<T> comparer) 271/// <seealso cref="Microsoft.CodeAnalysis.ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 273public static bool HasDuplicates<TItem, TValue>(this IEnumerable<TItem> source, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 615public static int IndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 624private static int EnumeratingIndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 640public static int IndexOf<T>(this IReadOnlyList<T> list, T value, IEqualityComparer<T> comparer) 698public static ImmutableDictionary<K, V> ToImmutableDictionaryOrEmpty<K, V>(this IEnumerable<KeyValuePair<K, V>>? items, IEqualityComparer<K>? keyComparer) 764internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IEnumerable<T> data, Func<T, K> keySelector, IEqualityComparer<K>? comparer = null) 945/// Variant of <see cref="System.Linq.Enumerable.SequenceEqual{TSource}(IEnumerable{TSource}, IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>
src\roslyn\src\Dependencies\Collections\Extensions\IListExtensions.cs (4)
18public static bool HasDuplicates<T>(this IReadOnlyList<T> list, IEqualityComparer<T> comparer) 31/// <seealso cref="ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(System.Collections.Immutable.ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 32/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 34internal static bool HasDuplicates<TItem, TValue>(this IReadOnlyList<TItem> list, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer)
src\roslyn\src\Dependencies\Collections\Extensions\ImmutableArrayExtensions.cs (9)
624public static bool SetEquals<T>(this ImmutableArray<T> array1, ImmutableArray<T> array2, IEqualityComparer<T> comparer) 754internal static bool HasDuplicates<T>(this ImmutableArray<T> array, IEqualityComparer<T> comparer) 767/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 769internal static bool HasDuplicates<TItem, TValue>(this ImmutableArray<TItem> array, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 861(Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> map, IEqualityComparer<TKey> comparer) 917internal static int IndexOf<T>(this ImmutableArray<T> array, T item, IEqualityComparer<T> comparer) 1186/// Specialization of <see cref="System.Linq.Enumerable.Distinct{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>. 1188public static ImmutableArray<T> Distinct<T>(this ImmutableArray<T> array, IEqualityComparer<T>? comparer = null) 1255/// Variant of <see cref="System.Collections.Immutable.ImmutableArray{T}.Contains(T, IEqualityComparer{T})"/>
src\roslyn\src\Dependencies\Collections\OneOrMany.cs (5)
191public bool SequenceEqual(OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 206public bool SequenceEqual(ImmutableArray<T> other, IEqualityComparer<T>? comparer = null) 209public bool SequenceEqual(IEnumerable<T> other, IEqualityComparer<T>? comparer = null) 281public static bool SequenceEqual<T>(this ImmutableArray<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 284public static bool SequenceEqual<T>(this IEnumerable<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary.cs (6)
23public static ImmutableSegmentedDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 31public static ImmutableSegmentedDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 39public static ImmutableSegmentedDictionary<TKey, TValue> CreateRange<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) 56public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> items, IEqualityComparer<TKey>? keyComparer) 72public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IEqualityComparer<TKey>? keyComparer) 90public static ImmutableSegmentedDictionary<TKey, TSource> ToImmutableSegmentedDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2.cs (2)
84public IEqualityComparer<TKey> KeyComparer => _dictionary.Comparer; 267public ImmutableSegmentedDictionary<TKey, TValue> WithComparer(IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+Builder.cs (1)
27public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+ValueBuilder.cs (1)
35public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet.cs (12)
27/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T})"/> 28public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer) 31/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T)"/> 32public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item) 35/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T[])"/> 36public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items) 43/// <inheritdoc cref="ImmutableHashSet.CreateBuilder{T}(IEqualityComparer{T}?)"/> 44public static ImmutableSegmentedHashSet<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer) 56/// <inheritdoc cref="ImmutableHashSet.CreateRange{T}(IEqualityComparer{T}?, IEnumerable{T})"/> 57public static ImmutableSegmentedHashSet<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items) 74/// <inheritdoc cref="ImmutableHashSet.ToImmutableHashSet{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/> 75public static ImmutableSegmentedHashSet<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1.cs (3)
79public IEqualityComparer<T> KeyComparer => _set.Comparer; 304/// <inheritdoc cref="ImmutableHashSet{T}.WithComparer(IEqualityComparer{T}?)"/> 305public ImmutableSegmentedHashSet<T> WithComparer(IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+Builder.cs (1)
27public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+ValueBuilder.cs (1)
38public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (11)
306public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 339public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 372/// <inheritdoc cref="ImmutableList{T}.Remove(T, IEqualityComparer{T}?)"/> 373public ImmutableSegmentedList<T> Remove(T value, IEqualityComparer<T>? equalityComparer) 427/// <inheritdoc cref="ImmutableList{T}.RemoveRange(IEnumerable{T}, IEqualityComparer{T}?)"/> 428public ImmutableSegmentedList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 481/// <inheritdoc cref="ImmutableList{T}.Replace(T, T, IEqualityComparer{T}?)"/> 482public ImmutableSegmentedList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 618IImmutableList<T> IImmutableList<T>.Remove(T value, IEqualityComparer<T>? equalityComparer) 624IImmutableList<T> IImmutableList<T>.RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 636IImmutableList<T> IImmutableList<T>.Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+Builder.cs (4)
157/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.IndexOf(T, int, int, IEqualityComparer{T}?)"/> 158public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 180/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.LastIndexOf(T, int, int, IEqualityComparer{T}?)"/> 181public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (2)
208public readonly int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 244public readonly int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedArray.cs (2)
216public static int IndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer) 281public static int LastIndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedDictionary`2.cs (10)
62private readonly IEqualityComparer<TKey> _comparer; 78public SegmentedDictionary(IEqualityComparer<TKey>? comparer) 83public SegmentedDictionary(int capacity, IEqualityComparer<TKey>? comparer) 123public SegmentedDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey>? comparer) 139public SegmentedDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) 222public IEqualityComparer<TKey> Comparer 409var comparer = _comparer; 523var comparer = _comparer; 710var comparer = _comparer; 787var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedHashSet`1.cs (10)
69private readonly IEqualityComparer<T> _comparer; 74public SegmentedHashSet() : this((IEqualityComparer<T>?)null) { } 76public SegmentedHashSet(IEqualityComparer<T>? comparer) 105public SegmentedHashSet(IEnumerable<T> collection, IEqualityComparer<T>? comparer) : this(comparer) 138public SegmentedHashSet(int capacity, IEqualityComparer<T>? comparer) : this(comparer) 230var comparer = _comparer; 301IEqualityComparer<T>? comparer = _comparer; 865public IEqualityComparer<T> Comparer 992public static IEqualityComparer<SegmentedHashSet<T>> CreateSetComparer() => new SegmentedHashSetEqualityComparer<T>(); 1028var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedList`1.cs (2)
840public int IndexOf(T item, int index, int count, IEqualityComparer<T>? comparer) 1031public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\TemporaryArray`1.cs (2)
252public readonly bool Contains(T value, IEqualityComparer<T>? equalityComparer = null) 255public readonly int IndexOf(T value, IEqualityComparer<T>? equalityComparer = null)
src\roslyn\src\Dependencies\PooledObjects\ArrayBuilder.cs (2)
209public int IndexOf(T item, IEqualityComparer<T> equalityComparer) 613internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\roslyn\src\Dependencies\PooledObjects\PooledDictionary.cs (2)
27private PooledDictionary(ObjectPool<PooledDictionary<K, V>> pool, IEqualityComparer<K> keyComparer) 52public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K> keyComparer)
src\roslyn\src\Dependencies\PooledObjects\PooledHashSet.cs (2)
25private PooledHashSet(ObjectPool<PooledHashSet<T>> pool, IEqualityComparer<T> equalityComparer) : 41public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`1.cs (1)
20IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`2.cs (2)
39private readonly IEqualityComparer<TItem>? _equalityComparer; 114IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ImmutableArrayExtensions.cs (1)
21public static bool Contains<T>(this ImmutableArray<T> items, T item, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (2)
46bool IEqualityComparer<TSyntaxNode>.Equals([AllowNull] TSyntaxNode x, [AllowNull] TSyntaxNode y) 49int IEqualityComparer<TSyntaxNode>.GetHashCode([DisallowNull] TSyntaxNode obj)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
133/// Returns an <see cref="IEqualityComparer{T}"/> that determines if two <see cref="SymbolKey"/>s 145public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase = false, bool ignoreAssemblyKeys = false)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (2)
52public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase, bool ignoreAssemblyKey) 63public static IEqualityComparer<SymbolKey> GetComparer(ComparisonOptions options)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AsyncPriorityWorkQueue.cs (1)
75IEqualityComparer<TItem> equalityComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\BidirectionalMap.cs (4)
23public BidirectionalMap(IEnumerable<KeyValuePair<TKey, TValue>> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null) 29public BidirectionalMap(IEnumerable<(TKey key, TValue value)> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\IDictionaryExtensions.cs (1)
100public static bool MultiAdd<TKey, TValue>(this IDictionary<TKey, ImmutableHashSet<TValue>> dictionary, TKey key, TValue value, IEqualityComparer<TValue>? comparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ReferenceCountedDisposableCache.cs (1)
26public ReferenceCountedDisposableCache(IEqualityComparer<TKey> comparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (2)
25private IEqualityComparer<IParameterSymbol> ParameterEquivalenceComparer => _symbolEquivalenceComparer.ParameterEquivalenceComparer; 27private IEqualityComparer<ITypeSymbol> SignatureTypeEquivalenceComparer => _symbolEquivalenceComparer.SignatureTypeEquivalenceComparer;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
15public static readonly IEqualityComparer<IAssemblySymbol> Instance = new SimpleNameAssemblyComparer();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (2)
50private readonly IEqualityComparer<IAssemblySymbol>? _assemblyComparer; 62IEqualityComparer<IAssemblySymbol>? assemblyComparer,
Microsoft.CodeAnalysis.CodeStyle.Fixes (3)
src\7a47995420f988d7\AbstractRemoveUnnecessaryImportsService.cs (2)
43bool IEqualityComparer<T>.Equals(T? x, T? y) 46int IEqualityComparer<T>.GetHashCode(T obj)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\FindSymbols\LinkedFileReferenceLocationEqualityComparer.cs (1)
16public static readonly IEqualityComparer<ReferenceLocation> Instance = new LinkedFileReferenceLocationEqualityComparer();
Microsoft.CodeAnalysis.CSharp (18)
Binder\Imports.cs (3)
213public static readonly IEqualityComparer<NamespaceOrTypeAndUsingDirective> Instance = new UsingTargetComparer(); 217bool IEqualityComparer<NamespaceOrTypeAndUsingDirective>.Equals(NamespaceOrTypeAndUsingDirective x, NamespaceOrTypeAndUsingDirective y) 222int IEqualityComparer<NamespaceOrTypeAndUsingDirective>.GetHashCode(NamespaceOrTypeAndUsingDirective obj)
Binder\Semantics\BestTypeInferrer.cs (1)
68IEqualityComparer<TypeSymbol> comparer = conversions.IncludeNullability ? Symbols.SymbolEqualityComparer.ConsiderEverything : Symbols.SymbolEqualityComparer.IgnoringNullable;
Symbols\MemberSignatureComparer.cs (1)
646private static bool HaveSameTypeConstraints(TypeParameterSymbol typeParameter1, TypeMap? typeMap1, TypeParameterSymbol typeParameter2, TypeMap? typeMap2, IEqualityComparer<TypeSymbol> comparer)
Symbols\MergedNamespaceSymbol.cs (1)
167private SegmentedHashSet<ReadOnlyMemory<char>> SlowGetChildNames(IEqualityComparer<ReadOnlyMemory<char>> comparer)
Symbols\OverriddenOrHiddenMembersHelpers.cs (3)
551IEqualityComparer<Symbol> exactMatchComparer = memberIsFromSomeCompilation 555IEqualityComparer<Symbol> fallbackComparer = memberIsFromSomeCompilation 858IEqualityComparer<Symbol> comparer = MemberSignatureComparer.CSharpCustomModifierOverrideComparer;
Symbols\Retargeting\RetargetingSymbolTranslator.cs (6)
882public MethodSymbol Retarget(MethodSymbol method, IEqualityComparer<MethodSymbol> retargetedMethodComparer) 932public PropertySymbol Retarget(PropertySymbol property, IEqualityComparer<PropertySymbol> retargetedPropertyComparer) 964private MethodSymbol FindMethodInRetargetedType(MethodSymbol method, NamedTypeSymbol retargetedType, IEqualityComparer<MethodSymbol> retargetedMethodComparer) 981public static MethodSymbol Find(RetargetingSymbolTranslator translator, MethodSymbol method, NamedTypeSymbol retargetedType, IEqualityComparer<MethodSymbol> retargetedMethodComparer) 999IEqualityComparer<MethodSymbol> retargetedMethodComparer 1074private PropertySymbol FindPropertyInRetargetedType(PropertySymbol property, NamedTypeSymbol retargetedType, IEqualityComparer<PropertySymbol> retargetedPropertyComparer)
Symbols\Source\SourceNamedTypeSymbol.cs (1)
636static SmallDictionary<TypeWithAnnotations, int> toDictionary(ImmutableArray<TypeWithAnnotations> constraintTypes, IEqualityComparer<TypeWithAnnotations> comparer)
Syntax\SyntaxKindEqualityComparer.cs (1)
31public static IEqualityComparer<SyntaxKind> EqualityComparer { get; } = new SyntaxKindEqualityComparer();
Utilities\FirstAmongEqualsSet.cs (1)
47IEqualityComparer<T> equalityComparer,
Microsoft.CodeAnalysis.CSharp.Features (3)
Completion\CompletionProviders\FunctionPointerUnmanagedCallingConventionCompletionProvider.cs (1)
127public static readonly IEqualityComparer<CompletionItem> Instance = new CompletionItemComparer();
Completion\CompletionProviders\NamedParameterCompletionProvider.cs (2)
256bool IEqualityComparer<IParameterSymbol>.Equals(IParameterSymbol? x, IParameterSymbol? y) 259int IEqualityComparer<IParameterSymbol>.GetHashCode(IParameterSymbol obj)
Microsoft.CodeAnalysis.Extensions.Package (110)
src\roslyn\src\Dependencies\Collections\Extensions\IEnumerableExtensions.cs (11)
105public static bool SetEquals<T>(this IEnumerable<T> source1, IEnumerable<T> source2, IEqualityComparer<T>? comparer) 135public static ISet<T> ToSet<T>(this IEnumerable<T> source, IEqualityComparer<T>? comparer) 258public static bool HasDuplicates<T>(this IEnumerable<T> source, IEqualityComparer<T> comparer) 271/// <seealso cref="Microsoft.CodeAnalysis.ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 273public static bool HasDuplicates<TItem, TValue>(this IEnumerable<TItem> source, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 615public static int IndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 624private static int EnumeratingIndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 640public static int IndexOf<T>(this IReadOnlyList<T> list, T value, IEqualityComparer<T> comparer) 698public static ImmutableDictionary<K, V> ToImmutableDictionaryOrEmpty<K, V>(this IEnumerable<KeyValuePair<K, V>>? items, IEqualityComparer<K>? keyComparer) 764internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IEnumerable<T> data, Func<T, K> keySelector, IEqualityComparer<K>? comparer = null) 945/// Variant of <see cref="System.Linq.Enumerable.SequenceEqual{TSource}(IEnumerable{TSource}, IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>
src\roslyn\src\Dependencies\Collections\Extensions\IListExtensions.cs (4)
18public static bool HasDuplicates<T>(this IReadOnlyList<T> list, IEqualityComparer<T> comparer) 31/// <seealso cref="ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(System.Collections.Immutable.ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 32/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 34internal static bool HasDuplicates<TItem, TValue>(this IReadOnlyList<TItem> list, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer)
src\roslyn\src\Dependencies\Collections\Extensions\ImmutableArrayExtensions.cs (9)
624public static bool SetEquals<T>(this ImmutableArray<T> array1, ImmutableArray<T> array2, IEqualityComparer<T> comparer) 754internal static bool HasDuplicates<T>(this ImmutableArray<T> array, IEqualityComparer<T> comparer) 767/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 769internal static bool HasDuplicates<TItem, TValue>(this ImmutableArray<TItem> array, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 861(Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> map, IEqualityComparer<TKey> comparer) 917internal static int IndexOf<T>(this ImmutableArray<T> array, T item, IEqualityComparer<T> comparer) 1186/// Specialization of <see cref="System.Linq.Enumerable.Distinct{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>. 1188public static ImmutableArray<T> Distinct<T>(this ImmutableArray<T> array, IEqualityComparer<T>? comparer = null) 1255/// Variant of <see cref="System.Collections.Immutable.ImmutableArray{T}.Contains(T, IEqualityComparer{T})"/>
src\roslyn\src\Dependencies\Collections\OneOrMany.cs (5)
191public bool SequenceEqual(OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 206public bool SequenceEqual(ImmutableArray<T> other, IEqualityComparer<T>? comparer = null) 209public bool SequenceEqual(IEnumerable<T> other, IEqualityComparer<T>? comparer = null) 281public static bool SequenceEqual<T>(this ImmutableArray<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 284public static bool SequenceEqual<T>(this IEnumerable<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary.cs (6)
23public static ImmutableSegmentedDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 31public static ImmutableSegmentedDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 39public static ImmutableSegmentedDictionary<TKey, TValue> CreateRange<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) 56public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> items, IEqualityComparer<TKey>? keyComparer) 72public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IEqualityComparer<TKey>? keyComparer) 90public static ImmutableSegmentedDictionary<TKey, TSource> ToImmutableSegmentedDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2.cs (2)
84public IEqualityComparer<TKey> KeyComparer => _dictionary.Comparer; 267public ImmutableSegmentedDictionary<TKey, TValue> WithComparer(IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+Builder.cs (1)
27public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+ValueBuilder.cs (1)
35public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet.cs (12)
27/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T})"/> 28public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer) 31/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T)"/> 32public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item) 35/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T[])"/> 36public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items) 43/// <inheritdoc cref="ImmutableHashSet.CreateBuilder{T}(IEqualityComparer{T}?)"/> 44public static ImmutableSegmentedHashSet<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer) 56/// <inheritdoc cref="ImmutableHashSet.CreateRange{T}(IEqualityComparer{T}?, IEnumerable{T})"/> 57public static ImmutableSegmentedHashSet<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items) 74/// <inheritdoc cref="ImmutableHashSet.ToImmutableHashSet{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/> 75public static ImmutableSegmentedHashSet<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1.cs (3)
79public IEqualityComparer<T> KeyComparer => _set.Comparer; 304/// <inheritdoc cref="ImmutableHashSet{T}.WithComparer(IEqualityComparer{T}?)"/> 305public ImmutableSegmentedHashSet<T> WithComparer(IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+Builder.cs (1)
27public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+ValueBuilder.cs (1)
38public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (11)
306public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 339public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 372/// <inheritdoc cref="ImmutableList{T}.Remove(T, IEqualityComparer{T}?)"/> 373public ImmutableSegmentedList<T> Remove(T value, IEqualityComparer<T>? equalityComparer) 427/// <inheritdoc cref="ImmutableList{T}.RemoveRange(IEnumerable{T}, IEqualityComparer{T}?)"/> 428public ImmutableSegmentedList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 481/// <inheritdoc cref="ImmutableList{T}.Replace(T, T, IEqualityComparer{T}?)"/> 482public ImmutableSegmentedList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 618IImmutableList<T> IImmutableList<T>.Remove(T value, IEqualityComparer<T>? equalityComparer) 624IImmutableList<T> IImmutableList<T>.RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 636IImmutableList<T> IImmutableList<T>.Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+Builder.cs (4)
157/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.IndexOf(T, int, int, IEqualityComparer{T}?)"/> 158public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 180/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.LastIndexOf(T, int, int, IEqualityComparer{T}?)"/> 181public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (2)
208public readonly int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 244public readonly int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedArray.cs (2)
216public static int IndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer) 281public static int LastIndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedDictionary`2.cs (10)
62private readonly IEqualityComparer<TKey> _comparer; 78public SegmentedDictionary(IEqualityComparer<TKey>? comparer) 83public SegmentedDictionary(int capacity, IEqualityComparer<TKey>? comparer) 123public SegmentedDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey>? comparer) 139public SegmentedDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) 222public IEqualityComparer<TKey> Comparer 409var comparer = _comparer; 523var comparer = _comparer; 710var comparer = _comparer; 787var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedHashSet`1.cs (10)
69private readonly IEqualityComparer<T> _comparer; 74public SegmentedHashSet() : this((IEqualityComparer<T>?)null) { } 76public SegmentedHashSet(IEqualityComparer<T>? comparer) 105public SegmentedHashSet(IEnumerable<T> collection, IEqualityComparer<T>? comparer) : this(comparer) 138public SegmentedHashSet(int capacity, IEqualityComparer<T>? comparer) : this(comparer) 230var comparer = _comparer; 301IEqualityComparer<T>? comparer = _comparer; 865public IEqualityComparer<T> Comparer 992public static IEqualityComparer<SegmentedHashSet<T>> CreateSetComparer() => new SegmentedHashSetEqualityComparer<T>(); 1028var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedList`1.cs (2)
840public int IndexOf(T item, int index, int count, IEqualityComparer<T>? comparer) 1031public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\TemporaryArray`1.cs (2)
252public readonly bool Contains(T value, IEqualityComparer<T>? equalityComparer = null) 255public readonly int IndexOf(T value, IEqualityComparer<T>? equalityComparer = null)
src\roslyn\src\Dependencies\PooledObjects\ArrayBuilder.cs (2)
209public int IndexOf(T item, IEqualityComparer<T> equalityComparer) 613internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\roslyn\src\Dependencies\PooledObjects\PooledDictionary.cs (2)
27private PooledDictionary(ObjectPool<PooledDictionary<K, V>> pool, IEqualityComparer<K> keyComparer) 52public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K> keyComparer)
src\roslyn\src\Dependencies\PooledObjects\PooledHashSet.cs (2)
25private PooledHashSet(ObjectPool<PooledHashSet<T>> pool, IEqualityComparer<T> equalityComparer) : 41public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T> equalityComparer)
Symbols\SignatureComparer.cs (2)
25private IEqualityComparer<IParameterSymbol> ParameterEquivalenceComparer => _symbolEquivalenceComparer.ParameterEquivalenceComparer; 27private IEqualityComparer<ITypeSymbol> SignatureTypeEquivalenceComparer => _symbolEquivalenceComparer.SignatureTypeEquivalenceComparer;
Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
15public static readonly IEqualityComparer<IAssemblySymbol> Instance = new SimpleNameAssemblyComparer();
Symbols\SymbolEquivalenceComparer.cs (2)
50private readonly IEqualityComparer<IAssemblySymbol>? _assemblyComparer; 62IEqualityComparer<IAssemblySymbol>? assemblyComparer,
Microsoft.CodeAnalysis.Features (19)
AddImport\AbstractAddImportFeatureService.cs (2)
437bool IEqualityComparer<PortableExecutableReference>.Equals(PortableExecutableReference? x, PortableExecutableReference? y) 450int IEqualityComparer<PortableExecutableReference>.GetHashCode(PortableExecutableReference obj)
Completion\CompletionService.ProviderManager.cs (2)
223bool IEqualityComparer<ImmutableHashSet<string>>.Equals([AllowNull] ImmutableHashSet<string> x, [AllowNull] ImmutableHashSet<string> y) 246int IEqualityComparer<ImmutableHashSet<string>>.GetHashCode([DisallowNull] ImmutableHashSet<string> obj)
Completion\Providers\ImportCompletionProvider\ExtensionMethodImportCompletionCacheEntry.cs (1)
33public sealed class Builder(Checksum checksum, string language, IEqualityComparer<string> comparer)
Debugging\AbstractBreakpointResolver.cs (4)
60private readonly IEqualityComparer<string> _identifierComparer; 66IEqualityComparer<string> identifierComparer) 158private static bool MatchesName(INamespaceOrTypeSymbol typeOrNamespace, NameAndArity nameAndArity, IEqualityComparer<string> comparer) 172private static bool MatchesNames(INamedTypeSymbol type, NameAndArity[] names, IEqualityComparer<string> comparer)
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (3)
2517public static readonly IEqualityComparer<IAssemblySymbol?> Instance = new AssemblyEqualityComparer(); 2588=> (exact ? s_exactSymbolEqualityComparer : (IEqualityComparer<ITypeSymbol?>)s_runtimeSymbolEqualityComparer.SignatureTypeEquivalenceComparer).Equals(oldType, newType); 4235private static readonly IEqualityComparer<SymbolKey> s_symbolKeyComparer = SymbolKey.GetComparer();
EditAndContinue\EditSession.cs (1)
938var symbolKeyComparer = SymbolKey.GetComparer(ignoreCase: false, ignoreAssemblyKeys: true);
MetadataAsSource\DecompilationMetadataAsSourceFileProvider.cs (1)
412private static readonly IEqualityComparer<SymbolKey> s_symbolIdComparer = SymbolKey.GetComparer(ignoreCase: false, ignoreAssemblyKeys: true);
NavigateTo\NavigateToSearchResultComparer.cs (1)
21public static readonly IEqualityComparer<INavigateToSearchResult> Instance = new NavigateToSearchResultComparer();
Shared\Extensions\DocumentExtensions.cs (1)
54IEqualityComparer<T> comparer,
SignatureHelp\AbstractSignatureHelpProvider.SymbolKeySignatureHelpItem.cs (1)
43var comparer = CodeAnalysis.SymbolKey.GetComparer(ignoreCase: false, ignoreAssemblyKeys: false);
src\roslyn\src\Analyzers\Core\Analyzers\RemoveUnusedMembers\AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (2)
108bool IEqualityComparer<ISymbol>.Equals(ISymbol? x, ISymbol? y) 111int IEqualityComparer<ISymbol>.GetHashCode(ISymbol obj)
Microsoft.CodeAnalysis.NetAnalyzers (30)
Microsoft.CodeQuality.Analyzers\QualityGuidelines\AvoidDuplicateElementInitialization.cs (2)
108bool IEqualityComparer<ImmutableArray<object>>.Equals(ImmutableArray<object> x, ImmutableArray<object> y) 118int IEqualityComparer<ImmutableArray<object>>.GetHashCode(ImmutableArray<object> obj)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\ConcurrentCache`2.cs (2)
14private readonly IEqualityComparer<TKey> _keyComparer; 31public ConcurrentCache(int size, IEqualityComparer<TKey> keyComparer)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\PooledObjects\ArrayBuilder.cs (2)
142public int IndexOf(T item, IEqualityComparer<T> equalityComparer) 387internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\PooledObjects\PooledConcurrentDictionary.cs (5)
27private PooledConcurrentDictionary(ObjectPool<PooledConcurrentDictionary<K, V>>? pool, IEqualityComparer<K> keyComparer) 50private static readonly ConcurrentDictionary<IEqualityComparer<K>, ObjectPool<PooledConcurrentDictionary<K, V>>> s_poolInstancesByComparer = new(); 53public static ObjectPool<PooledConcurrentDictionary<K, V>> CreatePool(IEqualityComparer<K>? keyComparer = null) 64public static PooledConcurrentDictionary<K, V> GetInstance(IEqualityComparer<K>? keyComparer = null) 74public static PooledConcurrentDictionary<K, V> GetInstance(IEnumerable<KeyValuePair<K, V>> initializer, IEqualityComparer<K>? keyComparer = null)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\PooledObjects\PooledConcurrentSet.cs (2)
32public static PooledConcurrentSet<T> GetInstance(IEqualityComparer<T>? comparer = null) 38public static PooledConcurrentSet<T> GetInstance(IEnumerable<T> initializer, IEqualityComparer<T>? comparer = null)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\PooledObjects\PooledDictionary.cs (6)
22private PooledDictionary(ObjectPool<PooledDictionary<K, V>>? pool, IEqualityComparer<K>? keyComparer) 48Func<KeyValuePair<K, V>, TKey> keySelector, Func<KeyValuePair<K, V>, TValue> elementSelector, IEqualityComparer<TKey> comparer) 81private static readonly ConcurrentDictionary<IEqualityComparer<K>, ObjectPool<PooledDictionary<K, V>>> s_poolInstancesByComparer 85public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K>? keyComparer = null) 92public static PooledDictionary<K, V> GetInstance(IEqualityComparer<K>? keyComparer = null) 102public static PooledDictionary<K, V> GetInstance(IEnumerable<KeyValuePair<K, V>> initializer, IEqualityComparer<K>? keyComparer = null)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\PooledObjects\PooledHashSet.cs (5)
20private PooledHashSet(ObjectPool<PooledHashSet<T>>? pool, IEqualityComparer<T>? comparer) 63private static readonly ConcurrentDictionary<IEqualityComparer<T>, ObjectPool<PooledHashSet<T>>> s_poolInstancesByComparer = new(); 66public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T>? comparer = null) 73public static PooledHashSet<T> GetInstance(IEqualityComparer<T>? comparer = null) 83public static PooledHashSet<T> GetInstance(IEnumerable<T> initializer, IEqualityComparer<T>? comparer = null)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\ReferenceEqualityComparer.cs (2)
20bool IEqualityComparer<object?>.Equals(object? a, object? b) 25int IEqualityComparer<object?>.GetHashCode(object? a)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\RoslynHashCode.cs (1)
315public void Add<T>(T value, IEqualityComparer<T>? comparer)
src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Utilities\Compiler\SmallDictionary.cs (3)
39public readonly IEqualityComparer<K> Comparer; 46public SmallDictionary(IEqualityComparer<K> comparer) 51public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
Microsoft.CodeAnalysis.Razor.Compiler (2)
Language\HashCodeCombiner.cs (2)
45public void Add<TValue>(TValue value, IEqualityComparer<TValue> comparer) 52public void Add<T>(ImmutableArray<T> array, IEqualityComparer<T> comparer)
Microsoft.CodeAnalysis.ResxSourceGenerator (155)
src\roslyn\src\Compilers\Core\Portable\Collections\SmallDictionary.cs (3)
39public readonly IEqualityComparer<K> Comparer; 46public SmallDictionary(IEqualityComparer<K> comparer) 51public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
916public static readonly IEqualityComparer<string> Comparer = new PathComparer();
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ConcurrentSet.cs (1)
49public ConcurrentSet(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\MultiDictionary.cs (8)
103private readonly IEqualityComparer<V> _equalityComparer; 131public ValueSet(object? value, IEqualityComparer<V>? equalityComparer = null) 181public bool Contains(V v, IEqualityComparer<V> comparer) 208private readonly IEqualityComparer<V>? _valueComparer; 234public MultiDictionary(IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null) 247public MultiDictionary(int capacity, IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null)
src\roslyn\src\Dependencies\Collections\Extensions\IEnumerableExtensions.cs (11)
105public static bool SetEquals<T>(this IEnumerable<T> source1, IEnumerable<T> source2, IEqualityComparer<T>? comparer) 135public static ISet<T> ToSet<T>(this IEnumerable<T> source, IEqualityComparer<T>? comparer) 258public static bool HasDuplicates<T>(this IEnumerable<T> source, IEqualityComparer<T> comparer) 271/// <seealso cref="Microsoft.CodeAnalysis.ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 273public static bool HasDuplicates<TItem, TValue>(this IEnumerable<TItem> source, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 615public static int IndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 624private static int EnumeratingIndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 640public static int IndexOf<T>(this IReadOnlyList<T> list, T value, IEqualityComparer<T> comparer) 698public static ImmutableDictionary<K, V> ToImmutableDictionaryOrEmpty<K, V>(this IEnumerable<KeyValuePair<K, V>>? items, IEqualityComparer<K>? keyComparer) 764internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IEnumerable<T> data, Func<T, K> keySelector, IEqualityComparer<K>? comparer = null) 945/// Variant of <see cref="System.Linq.Enumerable.SequenceEqual{TSource}(IEnumerable{TSource}, IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>
src\roslyn\src\Dependencies\Collections\Extensions\IListExtensions.cs (4)
18public static bool HasDuplicates<T>(this IReadOnlyList<T> list, IEqualityComparer<T> comparer) 31/// <seealso cref="ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(System.Collections.Immutable.ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 32/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 34internal static bool HasDuplicates<TItem, TValue>(this IReadOnlyList<TItem> list, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer)
src\roslyn\src\Dependencies\Collections\Extensions\ImmutableArrayExtensions.cs (9)
624public static bool SetEquals<T>(this ImmutableArray<T> array1, ImmutableArray<T> array2, IEqualityComparer<T> comparer) 754internal static bool HasDuplicates<T>(this ImmutableArray<T> array, IEqualityComparer<T> comparer) 767/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 769internal static bool HasDuplicates<TItem, TValue>(this ImmutableArray<TItem> array, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 861(Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> map, IEqualityComparer<TKey> comparer) 917internal static int IndexOf<T>(this ImmutableArray<T> array, T item, IEqualityComparer<T> comparer) 1186/// Specialization of <see cref="System.Linq.Enumerable.Distinct{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>. 1188public static ImmutableArray<T> Distinct<T>(this ImmutableArray<T> array, IEqualityComparer<T>? comparer = null) 1255/// Variant of <see cref="System.Collections.Immutable.ImmutableArray{T}.Contains(T, IEqualityComparer{T})"/>
src\roslyn\src\Dependencies\Collections\OneOrMany.cs (5)
191public bool SequenceEqual(OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 206public bool SequenceEqual(ImmutableArray<T> other, IEqualityComparer<T>? comparer = null) 209public bool SequenceEqual(IEnumerable<T> other, IEqualityComparer<T>? comparer = null) 281public static bool SequenceEqual<T>(this ImmutableArray<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 284public static bool SequenceEqual<T>(this IEnumerable<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary.cs (6)
23public static ImmutableSegmentedDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 31public static ImmutableSegmentedDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 39public static ImmutableSegmentedDictionary<TKey, TValue> CreateRange<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) 56public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> items, IEqualityComparer<TKey>? keyComparer) 72public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IEqualityComparer<TKey>? keyComparer) 90public static ImmutableSegmentedDictionary<TKey, TSource> ToImmutableSegmentedDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2.cs (2)
84public IEqualityComparer<TKey> KeyComparer => _dictionary.Comparer; 267public ImmutableSegmentedDictionary<TKey, TValue> WithComparer(IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+Builder.cs (1)
27public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+ValueBuilder.cs (1)
35public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet.cs (12)
27/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T})"/> 28public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer) 31/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T)"/> 32public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item) 35/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T[])"/> 36public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items) 43/// <inheritdoc cref="ImmutableHashSet.CreateBuilder{T}(IEqualityComparer{T}?)"/> 44public static ImmutableSegmentedHashSet<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer) 56/// <inheritdoc cref="ImmutableHashSet.CreateRange{T}(IEqualityComparer{T}?, IEnumerable{T})"/> 57public static ImmutableSegmentedHashSet<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items) 74/// <inheritdoc cref="ImmutableHashSet.ToImmutableHashSet{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/> 75public static ImmutableSegmentedHashSet<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1.cs (3)
79public IEqualityComparer<T> KeyComparer => _set.Comparer; 304/// <inheritdoc cref="ImmutableHashSet{T}.WithComparer(IEqualityComparer{T}?)"/> 305public ImmutableSegmentedHashSet<T> WithComparer(IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+Builder.cs (1)
27public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+ValueBuilder.cs (1)
38public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (11)
306public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 339public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 372/// <inheritdoc cref="ImmutableList{T}.Remove(T, IEqualityComparer{T}?)"/> 373public ImmutableSegmentedList<T> Remove(T value, IEqualityComparer<T>? equalityComparer) 427/// <inheritdoc cref="ImmutableList{T}.RemoveRange(IEnumerable{T}, IEqualityComparer{T}?)"/> 428public ImmutableSegmentedList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 481/// <inheritdoc cref="ImmutableList{T}.Replace(T, T, IEqualityComparer{T}?)"/> 482public ImmutableSegmentedList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 618IImmutableList<T> IImmutableList<T>.Remove(T value, IEqualityComparer<T>? equalityComparer) 624IImmutableList<T> IImmutableList<T>.RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 636IImmutableList<T> IImmutableList<T>.Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+Builder.cs (4)
157/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.IndexOf(T, int, int, IEqualityComparer{T}?)"/> 158public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 180/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.LastIndexOf(T, int, int, IEqualityComparer{T}?)"/> 181public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (2)
208public readonly int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 244public readonly int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedArray.cs (2)
216public static int IndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer) 281public static int LastIndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedDictionary`2.cs (10)
62private readonly IEqualityComparer<TKey> _comparer; 78public SegmentedDictionary(IEqualityComparer<TKey>? comparer) 83public SegmentedDictionary(int capacity, IEqualityComparer<TKey>? comparer) 123public SegmentedDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey>? comparer) 139public SegmentedDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) 222public IEqualityComparer<TKey> Comparer 409var comparer = _comparer; 523var comparer = _comparer; 710var comparer = _comparer; 787var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedHashSet`1.cs (10)
69private readonly IEqualityComparer<T> _comparer; 74public SegmentedHashSet() : this((IEqualityComparer<T>?)null) { } 76public SegmentedHashSet(IEqualityComparer<T>? comparer) 105public SegmentedHashSet(IEnumerable<T> collection, IEqualityComparer<T>? comparer) : this(comparer) 138public SegmentedHashSet(int capacity, IEqualityComparer<T>? comparer) : this(comparer) 230var comparer = _comparer; 301IEqualityComparer<T>? comparer = _comparer; 865public IEqualityComparer<T> Comparer 992public static IEqualityComparer<SegmentedHashSet<T>> CreateSetComparer() => new SegmentedHashSetEqualityComparer<T>(); 1028var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedList`1.cs (2)
840public int IndexOf(T item, int index, int count, IEqualityComparer<T>? comparer) 1031public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\TemporaryArray`1.cs (2)
252public readonly bool Contains(T value, IEqualityComparer<T>? equalityComparer = null) 255public readonly int IndexOf(T value, IEqualityComparer<T>? equalityComparer = null)
src\roslyn\src\Dependencies\PooledObjects\ArrayBuilder.cs (2)
209public int IndexOf(T item, IEqualityComparer<T> equalityComparer) 613internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\roslyn\src\Dependencies\PooledObjects\PooledDictionary.cs (2)
27private PooledDictionary(ObjectPool<PooledDictionary<K, V>> pool, IEqualityComparer<K> keyComparer) 52public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K> keyComparer)
src\roslyn\src\Dependencies\PooledObjects\PooledHashSet.cs (2)
25private PooledHashSet(ObjectPool<PooledHashSet<T>> pool, IEqualityComparer<T> equalityComparer) : 41public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`1.cs (1)
20IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`2.cs (2)
39private readonly IEqualityComparer<TItem>? _equalityComparer; 114IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledConcurrentDictionary.cs (5)
29private PooledConcurrentDictionary(ObjectPool<PooledConcurrentDictionary<K, V>>? pool, IEqualityComparer<K> keyComparer) 52private static readonly ConcurrentDictionary<IEqualityComparer<K>, ObjectPool<PooledConcurrentDictionary<K, V>>> s_poolInstancesByComparer = new(); 55public static ObjectPool<PooledConcurrentDictionary<K, V>> CreatePool(IEqualityComparer<K>? keyComparer = null) 66public static PooledConcurrentDictionary<K, V> GetInstance(IEqualityComparer<K>? keyComparer = null) 76public static PooledConcurrentDictionary<K, V> GetInstance(IEnumerable<KeyValuePair<K, V>> initializer, IEqualityComparer<K>? keyComparer = null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledConcurrentSet.cs (2)
33public static PooledConcurrentSet<T> GetInstance(IEqualityComparer<T>? comparer = null) 39public static PooledConcurrentSet<T> GetInstance(IEnumerable<T> initializer, IEqualityComparer<T>? comparer = null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledDictionary.cs (4)
24Func<KeyValuePair<K, V>, TKey> keySelector, Func<KeyValuePair<K, V>, TValue> elementSelector, IEqualityComparer<TKey> comparer) 42private static readonly ConcurrentDictionary<IEqualityComparer<K>, ObjectPool<PooledDictionary<K, V>>> s_poolInstancesByComparer 46IEqualityComparer<K>? keyComparer 67IEqualityComparer<K>? keyComparer = null
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\RoslynHashCode.cs (1)
316public void Add<T>(T value, IEqualityComparer<T>? comparer)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\SmallDictionary.cs (3)
41public readonly IEqualityComparer<K> Comparer; 48public SmallDictionary(IEqualityComparer<K> comparer) 53public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ImmutableArrayExtensions.cs (1)
21public static bool Contains<T>(this ImmutableArray<T> items, T item, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (2)
46bool IEqualityComparer<TSyntaxNode>.Equals([AllowNull] TSyntaxNode x, [AllowNull] TSyntaxNode y) 49int IEqualityComparer<TSyntaxNode>.GetHashCode([DisallowNull] TSyntaxNode obj)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
133/// Returns an <see cref="IEqualityComparer{T}"/> that determines if two <see cref="SymbolKey"/>s 145public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase = false, bool ignoreAssemblyKeys = false)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (2)
52public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase, bool ignoreAssemblyKey) 63public static IEqualityComparer<SymbolKey> GetComparer(ComparisonOptions options)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AsyncPriorityWorkQueue.cs (1)
75IEqualityComparer<TItem> equalityComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\BidirectionalMap.cs (4)
23public BidirectionalMap(IEnumerable<KeyValuePair<TKey, TValue>> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null) 29public BidirectionalMap(IEnumerable<(TKey key, TValue value)> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\IDictionaryExtensions.cs (1)
100public static bool MultiAdd<TKey, TValue>(this IDictionary<TKey, ImmutableHashSet<TValue>> dictionary, TKey key, TValue value, IEqualityComparer<TValue>? comparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ReferenceCountedDisposableCache.cs (1)
26public ReferenceCountedDisposableCache(IEqualityComparer<TKey> comparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (2)
25private IEqualityComparer<IParameterSymbol> ParameterEquivalenceComparer => _symbolEquivalenceComparer.ParameterEquivalenceComparer; 27private IEqualityComparer<ITypeSymbol> SignatureTypeEquivalenceComparer => _symbolEquivalenceComparer.SignatureTypeEquivalenceComparer;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
15public static readonly IEqualityComparer<IAssemblySymbol> Instance = new SimpleNameAssemblyComparer();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (2)
50private readonly IEqualityComparer<IAssemblySymbol>? _assemblyComparer; 62IEqualityComparer<IAssemblySymbol>? assemblyComparer,
Microsoft.CodeAnalysis.VisualBasic (14)
Binding\Binder_XmlLiterals.vb (2)
588Private Function IEqualityComparer_Equals(x As XmlName, y As XmlName) As Boolean Implements IEqualityComparer(Of XmlName).Equals 592Private Function IEqualityComparer_GetHashCode(obj As XmlName) As Integer Implements IEqualityComparer(Of XmlName).GetHashCode
Declarations\SingleNamespaceDeclaration.vb (3)
62Private Shadows Function Equals(decl1 As SingleNamespaceDeclaration, decl2 As SingleNamespaceDeclaration) As Boolean Implements IEqualityComparer(Of SingleNamespaceDeclaration).Equals 66Private Shadows Function GetHashCode(decl1 As SingleNamespaceDeclaration) As Integer Implements IEqualityComparer(Of SingleNamespaceDeclaration).GetHashCode 71Public Shared ReadOnly EqualityComparer As IEqualityComparer(Of SingleNamespaceDeclaration) = New Comparer()
Symbols\EventSignatureComparer.vb (2)
110Implements IEqualityComparer(Of EventSymbol).Equals 151Implements IEqualityComparer(Of EventSymbol).GetHashCode
Symbols\MergedNamespaceSymbol.vb (1)
238Private Function SlowGetChildNames(comparer As IEqualityComparer(Of String)) As SegmentedHashSet(Of String)
Symbols\MethodSignatureComparer.vb (2)
233Implements IEqualityComparer(Of MethodSymbol).Equals 288Implements IEqualityComparer(Of MethodSymbol).GetHashCode
Symbols\PropertySignatureComparer.vb (2)
93Implements IEqualityComparer(Of PropertySymbol).Equals 129Implements IEqualityComparer(Of PropertySymbol).GetHashCode
Symbols\TypeSymbol.vb (2)
784Public Overloads Function Equals(x As Symbol, y As Symbol) As Boolean Implements IEqualityComparer(Of Symbol).Equals 789Public Overloads Function GetHashCode(obj As Symbol) As Integer Implements IEqualityComparer(Of Symbol).GetHashCode
Microsoft.CodeAnalysis.Workspaces (147)
FindSymbols\FindReferences\MetadataUnifyingEquivalenceComparer.cs (1)
13public static readonly IEqualityComparer<ISymbol> Instance = new MetadataUnifyingEquivalenceComparer();
Rename\ConflictEngine\ConflictingIdentifierTracker.cs (1)
10internal sealed class ConflictingIdentifierTracker(SyntaxToken tokenBeingRenamed, IEqualityComparer<string> identifierComparer)
Shared\Extensions\INamespaceSymbolExtensions.cs (1)
20public static readonly IEqualityComparer<INamespaceSymbol> EqualityComparer = new Comparer();
src\7a47995420f988d7\AbstractRemoveUnnecessaryImportsService.cs (2)
43bool IEqualityComparer<T>.Equals(T? x, T? y) 46int IEqualityComparer<T>.GetHashCode(T obj)
src\roslyn\src\Compilers\Core\Portable\Collections\SmallDictionary.cs (3)
39public readonly IEqualityComparer<K> Comparer; 46public SmallDictionary(IEqualityComparer<K> comparer) 51public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
916public static readonly IEqualityComparer<string> Comparer = new PathComparer();
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ConcurrentSet.cs (1)
49public ConcurrentSet(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\MultiDictionary.cs (8)
103private readonly IEqualityComparer<V> _equalityComparer; 131public ValueSet(object? value, IEqualityComparer<V>? equalityComparer = null) 181public bool Contains(V v, IEqualityComparer<V> comparer) 208private readonly IEqualityComparer<V>? _valueComparer; 234public MultiDictionary(IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null) 247public MultiDictionary(int capacity, IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null)
src\roslyn\src\Dependencies\Collections\Extensions\IEnumerableExtensions.cs (11)
105public static bool SetEquals<T>(this IEnumerable<T> source1, IEnumerable<T> source2, IEqualityComparer<T>? comparer) 135public static ISet<T> ToSet<T>(this IEnumerable<T> source, IEqualityComparer<T>? comparer) 258public static bool HasDuplicates<T>(this IEnumerable<T> source, IEqualityComparer<T> comparer) 271/// <seealso cref="Microsoft.CodeAnalysis.ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 273public static bool HasDuplicates<TItem, TValue>(this IEnumerable<TItem> source, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 615public static int IndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 624private static int EnumeratingIndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 640public static int IndexOf<T>(this IReadOnlyList<T> list, T value, IEqualityComparer<T> comparer) 698public static ImmutableDictionary<K, V> ToImmutableDictionaryOrEmpty<K, V>(this IEnumerable<KeyValuePair<K, V>>? items, IEqualityComparer<K>? keyComparer) 764internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IEnumerable<T> data, Func<T, K> keySelector, IEqualityComparer<K>? comparer = null) 945/// Variant of <see cref="System.Linq.Enumerable.SequenceEqual{TSource}(IEnumerable{TSource}, IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>
src\roslyn\src\Dependencies\Collections\Extensions\IListExtensions.cs (4)
18public static bool HasDuplicates<T>(this IReadOnlyList<T> list, IEqualityComparer<T> comparer) 31/// <seealso cref="ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(System.Collections.Immutable.ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 32/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 34internal static bool HasDuplicates<TItem, TValue>(this IReadOnlyList<TItem> list, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer)
src\roslyn\src\Dependencies\Collections\Extensions\ImmutableArrayExtensions.cs (9)
624public static bool SetEquals<T>(this ImmutableArray<T> array1, ImmutableArray<T> array2, IEqualityComparer<T> comparer) 754internal static bool HasDuplicates<T>(this ImmutableArray<T> array, IEqualityComparer<T> comparer) 767/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 769internal static bool HasDuplicates<TItem, TValue>(this ImmutableArray<TItem> array, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 861(Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> map, IEqualityComparer<TKey> comparer) 917internal static int IndexOf<T>(this ImmutableArray<T> array, T item, IEqualityComparer<T> comparer) 1186/// Specialization of <see cref="System.Linq.Enumerable.Distinct{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>. 1188public static ImmutableArray<T> Distinct<T>(this ImmutableArray<T> array, IEqualityComparer<T>? comparer = null) 1255/// Variant of <see cref="System.Collections.Immutable.ImmutableArray{T}.Contains(T, IEqualityComparer{T})"/>
src\roslyn\src\Dependencies\Collections\OneOrMany.cs (5)
191public bool SequenceEqual(OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 206public bool SequenceEqual(ImmutableArray<T> other, IEqualityComparer<T>? comparer = null) 209public bool SequenceEqual(IEnumerable<T> other, IEqualityComparer<T>? comparer = null) 281public static bool SequenceEqual<T>(this ImmutableArray<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 284public static bool SequenceEqual<T>(this IEnumerable<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary.cs (6)
23public static ImmutableSegmentedDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 31public static ImmutableSegmentedDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 39public static ImmutableSegmentedDictionary<TKey, TValue> CreateRange<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) 56public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> items, IEqualityComparer<TKey>? keyComparer) 72public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IEqualityComparer<TKey>? keyComparer) 90public static ImmutableSegmentedDictionary<TKey, TSource> ToImmutableSegmentedDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2.cs (2)
84public IEqualityComparer<TKey> KeyComparer => _dictionary.Comparer; 267public ImmutableSegmentedDictionary<TKey, TValue> WithComparer(IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+Builder.cs (1)
27public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+ValueBuilder.cs (1)
35public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet.cs (12)
27/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T})"/> 28public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer) 31/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T)"/> 32public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item) 35/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T[])"/> 36public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items) 43/// <inheritdoc cref="ImmutableHashSet.CreateBuilder{T}(IEqualityComparer{T}?)"/> 44public static ImmutableSegmentedHashSet<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer) 56/// <inheritdoc cref="ImmutableHashSet.CreateRange{T}(IEqualityComparer{T}?, IEnumerable{T})"/> 57public static ImmutableSegmentedHashSet<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items) 74/// <inheritdoc cref="ImmutableHashSet.ToImmutableHashSet{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/> 75public static ImmutableSegmentedHashSet<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1.cs (3)
79public IEqualityComparer<T> KeyComparer => _set.Comparer; 304/// <inheritdoc cref="ImmutableHashSet{T}.WithComparer(IEqualityComparer{T}?)"/> 305public ImmutableSegmentedHashSet<T> WithComparer(IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+Builder.cs (1)
27public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+ValueBuilder.cs (1)
38public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (11)
306public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 339public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 372/// <inheritdoc cref="ImmutableList{T}.Remove(T, IEqualityComparer{T}?)"/> 373public ImmutableSegmentedList<T> Remove(T value, IEqualityComparer<T>? equalityComparer) 427/// <inheritdoc cref="ImmutableList{T}.RemoveRange(IEnumerable{T}, IEqualityComparer{T}?)"/> 428public ImmutableSegmentedList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 481/// <inheritdoc cref="ImmutableList{T}.Replace(T, T, IEqualityComparer{T}?)"/> 482public ImmutableSegmentedList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 618IImmutableList<T> IImmutableList<T>.Remove(T value, IEqualityComparer<T>? equalityComparer) 624IImmutableList<T> IImmutableList<T>.RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 636IImmutableList<T> IImmutableList<T>.Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+Builder.cs (4)
157/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.IndexOf(T, int, int, IEqualityComparer{T}?)"/> 158public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 180/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.LastIndexOf(T, int, int, IEqualityComparer{T}?)"/> 181public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (2)
208public readonly int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 244public readonly int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedArray.cs (2)
216public static int IndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer) 281public static int LastIndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedDictionary`2.cs (10)
56private readonly IEqualityComparer<TKey>? _comparer; 78public SegmentedDictionary(IEqualityComparer<TKey>? comparer) 83public SegmentedDictionary(int capacity, IEqualityComparer<TKey>? comparer) 123public SegmentedDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey>? comparer) 139public SegmentedDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) 222public IEqualityComparer<TKey> Comparer 409var comparer = _comparer; 523var comparer = _comparer; 710var comparer = _comparer; 787var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedHashSet`1.cs (10)
63private readonly IEqualityComparer<T>? _comparer; 74public SegmentedHashSet() : this((IEqualityComparer<T>?)null) { } 76public SegmentedHashSet(IEqualityComparer<T>? comparer) 105public SegmentedHashSet(IEnumerable<T> collection, IEqualityComparer<T>? comparer) : this(comparer) 138public SegmentedHashSet(int capacity, IEqualityComparer<T>? comparer) : this(comparer) 230var comparer = _comparer; 301IEqualityComparer<T>? comparer = _comparer; 865public IEqualityComparer<T> Comparer 992public static IEqualityComparer<SegmentedHashSet<T>> CreateSetComparer() => new SegmentedHashSetEqualityComparer<T>(); 1028var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedList`1.cs (2)
840public int IndexOf(T item, int index, int count, IEqualityComparer<T>? comparer) 1031public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\TemporaryArray`1.cs (2)
252public readonly bool Contains(T value, IEqualityComparer<T>? equalityComparer = null) 255public readonly int IndexOf(T value, IEqualityComparer<T>? equalityComparer = null)
src\roslyn\src\Dependencies\PooledObjects\ArrayBuilder.cs (2)
209public int IndexOf(T item, IEqualityComparer<T> equalityComparer) 613internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\roslyn\src\Dependencies\PooledObjects\PooledDictionary.cs (2)
27private PooledDictionary(ObjectPool<PooledDictionary<K, V>> pool, IEqualityComparer<K> keyComparer) 52public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K> keyComparer)
src\roslyn\src\Dependencies\PooledObjects\PooledHashSet.cs (2)
25private PooledHashSet(ObjectPool<PooledHashSet<T>> pool, IEqualityComparer<T> equalityComparer) : 41public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`1.cs (1)
20IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`2.cs (2)
39private readonly IEqualityComparer<TItem>? _equalityComparer; 114IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ImmutableArrayExtensions.cs (1)
21public static bool Contains<T>(this ImmutableArray<T> items, T item, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (2)
46bool IEqualityComparer<TSyntaxNode>.Equals([AllowNull] TSyntaxNode x, [AllowNull] TSyntaxNode y) 49int IEqualityComparer<TSyntaxNode>.GetHashCode([DisallowNull] TSyntaxNode obj)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
133/// Returns an <see cref="IEqualityComparer{T}"/> that determines if two <see cref="SymbolKey"/>s 145public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase = false, bool ignoreAssemblyKeys = false)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (2)
52public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase, bool ignoreAssemblyKey) 63public static IEqualityComparer<SymbolKey> GetComparer(ComparisonOptions options)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AsyncPriorityWorkQueue.cs (1)
75IEqualityComparer<TItem> equalityComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\BidirectionalMap.cs (4)
23public BidirectionalMap(IEnumerable<KeyValuePair<TKey, TValue>> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null) 29public BidirectionalMap(IEnumerable<(TKey key, TValue value)> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\IDictionaryExtensions.cs (1)
100public static bool MultiAdd<TKey, TValue>(this IDictionary<TKey, ImmutableHashSet<TValue>> dictionary, TKey key, TValue value, IEqualityComparer<TValue>? comparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ReferenceCountedDisposableCache.cs (1)
26public ReferenceCountedDisposableCache(IEqualityComparer<TKey> comparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (2)
25private IEqualityComparer<IParameterSymbol> ParameterEquivalenceComparer => _symbolEquivalenceComparer.ParameterEquivalenceComparer; 27private IEqualityComparer<ITypeSymbol> SignatureTypeEquivalenceComparer => _symbolEquivalenceComparer.SignatureTypeEquivalenceComparer;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
15public static readonly IEqualityComparer<IAssemblySymbol> Instance = new SimpleNameAssemblyComparer();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (2)
50private readonly IEqualityComparer<IAssemblySymbol>? _assemblyComparer; 62IEqualityComparer<IAssemblySymbol>? assemblyComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\FindSymbols\LinkedFileReferenceLocationEqualityComparer.cs (1)
16public static readonly IEqualityComparer<ReferenceLocation> Instance = new LinkedFileReferenceLocationEqualityComparer();
Workspace\Solution\SolutionState.cs (1)
38public static readonly IEqualityComparer<string> FilePathComparer = CachingFilePathComparer.Instance;
Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost (2)
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
916public static readonly IEqualityComparer<string> Comparer = new PathComparer();
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ConcurrentSet.cs (1)
49public ConcurrentSet(IEqualityComparer<T> equalityComparer)
Microsoft.DotNet.ApiCompatibility (14)
ApiComparerSettings.cs (4)
21public IEqualityComparer<ISymbol> SymbolEqualityComparer { get; set; } 27public IEqualityComparer<AttributeData> AttributeDataEqualityComparer { get; set; } 39IEqualityComparer<ISymbol>? symbolEqualityComparer = null, 41IEqualityComparer<AttributeData>? attributeDataEqualityComparer = null,
Comparing\AttributeDataEqualityComparer.cs (2)
12public sealed class AttributeDataEqualityComparer(IEqualityComparer<ISymbol> symbolEqualityComparer, 13IEqualityComparer<TypedConstant> typedConstantEqualityComparer) : IEqualityComparer<AttributeData>
Comparing\NamedArgumentComparer.cs (1)
12public sealed class NamedArgumentComparer(IEqualityComparer<TypedConstant> typedConstantEqualityComparer) : IEqualityComparer<KeyValuePair<string, TypedConstant>>
Comparing\TypedConstantEqualityComparer.cs (1)
12public sealed class TypedConstantEqualityComparer(IEqualityComparer<ISymbol> symbolEqualityComparer) : IEqualityComparer<TypedConstant>
Mapping\AssemblyMapper.cs (1)
104IEqualityComparer<ISymbol> comparer,
Mapping\IMapperSettings.cs (1)
22IEqualityComparer<ISymbol> SymbolEqualityComparer { get; }
Rules\AttributesMustMatch.cs (2)
298private readonly IEqualityComparer<ISymbol> _symbolEqualityComparer; 300public AttributeSet(IEqualityComparer<ISymbol> symbolEqualityComparer,
Rules\RuleSettings.cs (2)
22IEqualityComparer<ISymbol> SymbolEqualityComparer { get; } 32IEqualityComparer<AttributeData> AttributeDataEqualityComparer { get; }
Microsoft.DotNet.HotReload.Watch (1)
Utilities\PathUtilities.cs (1)
8public static readonly IEqualityComparer<string?> OSSpecificPathComparer = Path.DirectorySeparatorChar == '\\' ? StringComparer.OrdinalIgnoreCase : StringComparer.Ordinal;
Microsoft.Extensions.AI.Abstractions (7)
Functions\AIFunctionArguments.cs (7)
33/// <remarks>The <see cref="IEqualityComparer{T}"/> is ordinal by default.</remarks> 51/// The <see cref="IEqualityComparer{T}"/> is ordinal by default. 59/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> to use for key comparisons.</param> 60public AIFunctionArguments(IEqualityComparer<string>? comparer) 70/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> to be used.</param> 73/// <see cref="Dictionary{TKey, TValue}"/> with the same <see cref="IEqualityComparer{T}"/> or if 78public AIFunctionArguments(IDictionary<string, object?>? arguments, IEqualityComparer<string>? comparer)
Microsoft.Extensions.AsyncState (6)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledDictionaryPolicy.cs (2)
17private readonly IEqualityComparer<TKey>? _comparer; 19public PooledDictionaryPolicy(IEqualityComparer<TKey>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledSetPolicy.cs (2)
17private readonly IEqualityComparer<T>? _comparer; 19public PooledSetPolicy(IEqualityComparer<T>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PoolFactory.cs (2)
152public static ObjectPool<Dictionary<TKey, TValue>> CreateDictionaryPool<TKey, TValue>(IEqualityComparer<TKey>? comparer = null, int maxCapacity = DefaultCapacity) 171public static ObjectPool<HashSet<T>> CreateHashSetPool<T>(IEqualityComparer<T>? comparer = null, int maxCapacity = DefaultCapacity)
Microsoft.Extensions.Compliance.Abstractions (6)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledDictionaryPolicy.cs (2)
17private readonly IEqualityComparer<TKey>? _comparer; 19public PooledDictionaryPolicy(IEqualityComparer<TKey>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledSetPolicy.cs (2)
17private readonly IEqualityComparer<T>? _comparer; 19public PooledSetPolicy(IEqualityComparer<T>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PoolFactory.cs (2)
152public static ObjectPool<Dictionary<TKey, TValue>> CreateDictionaryPool<TKey, TValue>(IEqualityComparer<TKey>? comparer = null, int maxCapacity = DefaultCapacity) 171public static ObjectPool<HashSet<T>> CreateHashSetPool<T>(IEqualityComparer<T>? comparer = null, int maxCapacity = DefaultCapacity)
Microsoft.Extensions.DependencyModel (1)
HashCodeCombiner.cs (1)
50public void Add<TValue>(TValue? value, IEqualityComparer<TValue> comparer)
Microsoft.Extensions.Diagnostics.HealthChecks.Common (6)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledDictionaryPolicy.cs (2)
17private readonly IEqualityComparer<TKey>? _comparer; 19public PooledDictionaryPolicy(IEqualityComparer<TKey>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledSetPolicy.cs (2)
17private readonly IEqualityComparer<T>? _comparer; 19public PooledSetPolicy(IEqualityComparer<T>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PoolFactory.cs (2)
152public static ObjectPool<Dictionary<TKey, TValue>> CreateDictionaryPool<TKey, TValue>(IEqualityComparer<TKey>? comparer = null, int maxCapacity = DefaultCapacity) 171public static ObjectPool<HashSet<T>> CreateHashSetPool<T>(IEqualityComparer<T>? comparer = null, int maxCapacity = DefaultCapacity)
Microsoft.Extensions.Diagnostics.ResourceMonitoring (6)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledDictionaryPolicy.cs (2)
17private readonly IEqualityComparer<TKey>? _comparer; 19public PooledDictionaryPolicy(IEqualityComparer<TKey>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledSetPolicy.cs (2)
17private readonly IEqualityComparer<T>? _comparer; 19public PooledSetPolicy(IEqualityComparer<T>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PoolFactory.cs (2)
152public static ObjectPool<Dictionary<TKey, TValue>> CreateDictionaryPool<TKey, TValue>(IEqualityComparer<TKey>? comparer = null, int maxCapacity = DefaultCapacity) 171public static ObjectPool<HashSet<T>> CreateHashSetPool<T>(IEqualityComparer<T>? comparer = null, int maxCapacity = DefaultCapacity)
Microsoft.Extensions.Http.Resilience (7)
Internal\HttpKey.cs (1)
12public static readonly IEqualityComparer<HttpKey> BuilderComparer = new BuilderEqualityComparer();
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledDictionaryPolicy.cs (2)
17private readonly IEqualityComparer<TKey>? _comparer; 19public PooledDictionaryPolicy(IEqualityComparer<TKey>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledSetPolicy.cs (2)
17private readonly IEqualityComparer<T>? _comparer; 19public PooledSetPolicy(IEqualityComparer<T>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PoolFactory.cs (2)
152public static ObjectPool<Dictionary<TKey, TValue>> CreateDictionaryPool<TKey, TValue>(IEqualityComparer<TKey>? comparer = null, int maxCapacity = DefaultCapacity) 171public static ObjectPool<HashSet<T>> CreateHashSetPool<T>(IEqualityComparer<T>? comparer = null, int maxCapacity = DefaultCapacity)
Microsoft.Extensions.Telemetry (6)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledDictionaryPolicy.cs (2)
17private readonly IEqualityComparer<TKey>? _comparer; 19public PooledDictionaryPolicy(IEqualityComparer<TKey>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledSetPolicy.cs (2)
17private readonly IEqualityComparer<T>? _comparer; 19public PooledSetPolicy(IEqualityComparer<T>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PoolFactory.cs (2)
152public static ObjectPool<Dictionary<TKey, TValue>> CreateDictionaryPool<TKey, TValue>(IEqualityComparer<TKey>? comparer = null, int maxCapacity = DefaultCapacity) 171public static ObjectPool<HashSet<T>> CreateHashSetPool<T>(IEqualityComparer<T>? comparer = null, int maxCapacity = DefaultCapacity)
Microsoft.Extensions.Telemetry.Abstractions (6)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledDictionaryPolicy.cs (2)
17private readonly IEqualityComparer<TKey>? _comparer; 19public PooledDictionaryPolicy(IEqualityComparer<TKey>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PooledSetPolicy.cs (2)
17private readonly IEqualityComparer<T>? _comparer; 19public PooledSetPolicy(IEqualityComparer<T>? comparer = null)
parent\parent\parent\eng\MSBuild\parent\parent\src\Shared\Pools\PoolFactory.cs (2)
152public static ObjectPool<Dictionary<TKey, TValue>> CreateDictionaryPool<TKey, TValue>(IEqualityComparer<TKey>? comparer = null, int maxCapacity = DefaultCapacity) 171public static ObjectPool<HashSet<T>> CreateHashSetPool<T>(IEqualityComparer<T>? comparer = null, int maxCapacity = DefaultCapacity)
Microsoft.Extensions.Validation.ValidationsGenerator (2)
Extensions\IncrementalValuesProviderExtensions.cs (1)
13public static IncrementalValuesProvider<TSource> Distinct<TSource>(this IncrementalValuesProvider<TSource> source, IEqualityComparer<TSource> comparer)
src\aspnetcore\src\Shared\HashCode.cs (1)
307public void Add<T>(T value, IEqualityComparer<T>? comparer)
Microsoft.Interop.ComInterfaceGenerator (7)
Comparers.cs (7)
18public static readonly IEqualityComparer<(MemberDeclarationSyntax Syntax, ImmutableArray<DiagnosticInfo> Diagnostics)> GeneratedSyntax = new CustomValueTupleElementComparer<MemberDeclarationSyntax, ImmutableArray<DiagnosticInfo>>(SyntaxEquivalentComparer.Instance, new ImmutableArraySequenceEqualComparer<DiagnosticInfo>(EqualityComparer<DiagnosticInfo>.Default)); 27private readonly IEqualityComparer<T> _elementComparer; 33public ImmutableArraySequenceEqualComparer(IEqualityComparer<T> elementComparer) 51private readonly IEqualityComparer<T> _item1Comparer; 52private readonly IEqualityComparer<U> _item2Comparer; 54public CustomValueTupleElementComparer(IEqualityComparer<T> item1Comparer, IEqualityComparer<U> item2Comparer)
Microsoft.Interop.JavaScript.JSImportGenerator (7)
Comparers.cs (7)
16public static readonly IEqualityComparer<(MemberDeclarationSyntax, StatementSyntax, AttributeListSyntax)> GeneratedSyntax3 = 23private readonly IEqualityComparer<T> _item1Comparer; 24private readonly IEqualityComparer<U> _item2Comparer; 25private readonly IEqualityComparer<V> _item3Comparer; 27public CustomValueTupleElementComparer(IEqualityComparer<T> item1Comparer, IEqualityComparer<U> item2Comparer, IEqualityComparer<V> item3Comparer)
Microsoft.Interop.LibraryImportGenerator (6)
Comparers.cs (6)
19private readonly IEqualityComparer<T> _elementComparer; 25public ImmutableArraySequenceEqualComparer(IEqualityComparer<T> elementComparer) 43private readonly IEqualityComparer<T> _item1Comparer; 44private readonly IEqualityComparer<U> _item2Comparer; 46public CustomValueTupleElementComparer(IEqualityComparer<T> item1Comparer, IEqualityComparer<U> item2Comparer)
Microsoft.Interop.SourceGeneration (3)
SequenceEqualImmutableArray.cs (2)
18public readonly record struct SequenceEqualImmutableArray<T>(ImmutableArray<T> Array, IEqualityComparer<T> Comparer) : IEnumerable<T> 49public static SequenceEqualImmutableArray<T> ToSequenceEqualImmutableArray<T>(this IEnumerable<T> source, IEqualityComparer<T> comparer)
SignatureContext.cs (1)
227&& AdditionalAttributes.SequenceEqual(other.AdditionalAttributes, (IEqualityComparer<AttributeListSyntax>)SyntaxEquivalentComparer.Instance);
Microsoft.Maui.Controls (4)
OrderedDictionary.cs (4)
57 public OrderedDictionary(IEqualityComparer<TKey> equalityComparer) : this(0, equalityComparer) 61 public OrderedDictionary(int capacity, IEqualityComparer<TKey> equalityComparer) 74 public OrderedDictionary(ICollection<KeyValuePair<TKey, TValue>> dictionary, IEqualityComparer<TKey> equalityComparer) : this(dictionary != null ? dictionary.Count : 0, equalityComparer) 86 public IEqualityComparer<TKey> Comparer
Microsoft.Maui.Controls.BindingSourceGen (2)
HashCode.cs (2)
21 public void Add<T>(T value, IEqualityComparer<T> comparer) 139 private static int Hash<T>(int hashCode, T value, IEqualityComparer<T> comparer)
Microsoft.ML.Data (10)
Transforms\Hashing.cs (6)
1554private readonly IEqualityComparer<T> _tComparer; 1556public KeyValueComparer(IEqualityComparer<T> tComparer) 1572private IEqualityComparer<T> GetSimpleComparer<T>() 1583return c as IEqualityComparer<T>; 1610protected virtual IEqualityComparer<T> GetComparer() 1711protected override IEqualityComparer<KeyValuePair<int, T>> GetComparer()
Transforms\InvertHashUtils.cs (4)
127private readonly IEqualityComparer<T> _tComparer; 129public PairEqualityComparer(IEqualityComparer<T> tComparer) 154private readonly IEqualityComparer<Pair> _comparer; 171IEqualityComparer<T> comparer, ValueMapper<T, T> copier = null)
Microsoft.Net.Http.Headers (1)
HeaderUtilities.cs (1)
89internal static bool AreEqualCollections<T>(ICollection<T>? x, ICollection<T>? y, IEqualityComparer<T>? comparer)
Microsoft.NET.Sdk.StaticWebAssets.Tasks (1)
Data\StaticWebAssetEndpoint.cs (1)
175public static IEqualityComparer<StaticWebAssetEndpoint> RouteAndAssetComparer { get; } = new RouteAndAssetEqualityComparer();
Microsoft.Private.Windows.Core (1)
System\Collections\Specialized\CompatibleIComparer.cs (1)
8internal static IEqualityComparer<string> Default { get; } = new BackCompatibleStringComparer();
Microsoft.TemplateEngine.Edge (4)
Template\FilteredTemplateEqualityComparer.cs (1)
9public static IEqualityComparer<IFilteredTemplateInfo> Default { get; } = new FilteredTemplateEqualityComparer();
Template\TemplateEqualityComparer.cs (1)
11public static IEqualityComparer<ITemplateInfo> Default { get; } = new TemplateEqualityComparer();
Template\TemplateMatchInfoEqualityComparer.cs (1)
9public static IEqualityComparer<ITemplateMatchInfo> Default { get; } = new TemplateMatchInfoEqualityComparer();
TemplateListFilter.cs (1)
139internal static IEqualityComparer<Abstractions.TemplateFiltering.ITemplateMatchInfo> Default { get; } = new TemplateMatchInfoEqualityComparer();
Microsoft.TemplateEngine.Utils (6)
EnumerableExtensions.cs (2)
15public static bool HasDuplicates<T>(this IEnumerable<T>? sequence, IEqualityComparer<T>? comparer = null) 32public static IEnumerable<T> GetDuplicates<T>(this IEnumerable<T>? sequence, IEqualityComparer<T>? comparer = null)
EqualityExtensions.cs (1)
14public static bool AllAreTheSame<T, TValue>(this IEnumerable<T> items, Func<T, TValue?> selector, IEqualityComparer<TValue?> comparer)
ListExtensions.cs (3)
10public static IEnumerable<IGrouping<TKey?, TElement>> GroupBy<TElement, TKey>(this IEnumerable<TElement> elements, Func<TElement, TKey?> grouper, Func<TElement, bool> hasGroupKey, IEqualityComparer<TKey?>? comparer = null) 76private readonly IEqualityComparer<T> _comparer; 78public ValueWrapperComparer(IEqualityComparer<T> comparer)
Microsoft.VisualStudio.TestPlatform.ObjectModel (4)
Nuget.Frameworks\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
Nuget.Frameworks\NuGetFramework.cs (2)
408public static readonly IEqualityComparer<NuGetFramework> Comparer = NuGetFrameworkFullComparer.Instance; 413public static readonly IEqualityComparer<NuGetFramework> FrameworkNameComparer = NuGetFrameworkNameComparer.Instance;
mscorlib (1)
src\runtime\src\libraries\shims\mscorlib\ref\mscorlib.cs (1)
95[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Collections.Generic.IEqualityComparer<>))]
netstandard (1)
netstandard.cs (1)
117[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Collections.Generic.IEqualityComparer<>))]
NuGet.Build.Tasks (1)
src\nuget-client\build\Shared\SharedExtensions.cs (1)
34public static HashSet<T>? AsHashSet<T>(this ISet<T> enumerable, IEqualityComparer<T>? comparer = null)
NuGet.CommandLine.XPlat (3)
src\nuget-client\build\Shared\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
src\nuget-client\build\Shared\SharedExtensions.cs (1)
34public static HashSet<T>? AsHashSet<T>(this ISet<T> enumerable, IEqualityComparer<T>? comparer = null)
NuGet.Commands (16)
Internal\HashCodeCombiner.cs (1)
80public void Add<TValue>(TValue value, IEqualityComparer<TValue> comparer)
RestoreCommand\DependencyGraphResolver.LibraryRangeComparer.cs (1)
15/// Represents an <see cref="IEqualityComparer{T}" /> of <see cref="LibraryRange" /> that considers them to be equal based on the same functionality of <see cref="LibraryRange.ToString" />.
RestoreCommand\LockFileBuilder.cs (1)
697/// An <see cref="IEqualityComparer{T}" /> that compares <see cref="LockFileTargetLibrary" /> objects by the value of the <see cref="LockFileTargetLibrary.Name" /> and <see cref="LockFileTargetLibrary.Version" /> properties.
RestoreCommand\Utility\ProjectItemIdentityComparer.cs (1)
15private IEqualityComparer<string> _identityComparer = StringComparer.OrdinalIgnoreCase;
src\nuget-client\build\Shared\EqualityUtility.cs (7)
24internal static bool OrderedEquals<TSource, TKey>(this IEnumerable<TSource>? self, IEnumerable<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 50internal static bool OrderedEquals<TSource, TKey>(this ICollection<TSource>? self, ICollection<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 92internal static bool OrderedEquals<TSource, TKey>(this IList<TSource>? self, IList<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 130IEqualityComparer<T>? comparer = null) 153IEqualityComparer<T>? comparer = null) 186IEqualityComparer<T>? comparer = null) 224IEqualityComparer<T>? comparer = null)
src\nuget-client\build\Shared\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
src\nuget-client\build\Shared\SharedExtensions.cs (1)
34public static HashSet<T>? AsHashSet<T>(this ISet<T> enumerable, IEqualityComparer<T>? comparer = null)
src\nuget-client\build\Shared\TaskResultCache.cs (2)
33/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to use when comparing keys.</param> 34public TaskResultCache(IEqualityComparer<TKey> comparer)
NuGet.Common (3)
AsyncEnumerable\AggregateEnumerableAsync.cs (2)
20private readonly IEqualityComparer<T>? _equalityComparer; 22public AggregateEnumerableAsync(IList<IEnumerableAsync<T>> asyncEnumerables, IComparer<T>? comparer, IEqualityComparer<T>? equalityComparer)
AsyncEnumerable\AggregateEnumeratorAsync.cs (1)
26public AggregateEnumeratorAsync(IList<IEnumerableAsync<T>> asyncEnumerables, IComparer<T>? orderingComparer, IEqualityComparer<T>? equalityComparer)
NuGet.Configuration (9)
src\nuget-client\build\Shared\EqualityUtility.cs (7)
24internal static bool OrderedEquals<TSource, TKey>(this IEnumerable<TSource>? self, IEnumerable<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 50internal static bool OrderedEquals<TSource, TKey>(this ICollection<TSource>? self, ICollection<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 92internal static bool OrderedEquals<TSource, TKey>(this IList<TSource>? self, IList<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 130IEqualityComparer<T>? comparer = null) 153IEqualityComparer<T>? comparer = null) 186IEqualityComparer<T>? comparer = null) 224IEqualityComparer<T>? comparer = null)
src\nuget-client\build\Shared\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
NuGet.DependencyResolver.Core (6)
Remote\RemoteDependencyWalker.cs (1)
662public static readonly IEqualityComparer<LibraryDependency> OrdinalIgnoreCaseNameComparer = new LibraryDependencyNameComparer();
src\nuget-client\build\Shared\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
src\nuget-client\build\Shared\SharedExtensions.cs (1)
34public static HashSet<T>? AsHashSet<T>(this ISet<T> enumerable, IEqualityComparer<T>? comparer = null)
src\nuget-client\build\Shared\TaskResultCache.cs (2)
33/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to use when comparing keys.</param> 34public TaskResultCache(IEqualityComparer<TKey> comparer)
NuGet.Frameworks (5)
NuGetFramework.cs (2)
409public static readonly IEqualityComparer<NuGetFramework> Comparer = NuGetFrameworkFullComparer.Instance; 414public static readonly IEqualityComparer<NuGetFramework> FrameworkNameComparer = NuGetFrameworkNameComparer.Instance;
src\nuget-client\build\Shared\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
src\nuget-client\build\Shared\SharedExtensions.cs (1)
34public static HashSet<T>? AsHashSet<T>(this ISet<T> enumerable, IEqualityComparer<T>? comparer = null)
NuGet.LibraryModel (10)
Library.cs (1)
12public static readonly IEqualityComparer<Library> IdentityComparer = new LibraryIdentityComparer();
src\nuget-client\build\Shared\EqualityUtility.cs (7)
24internal static bool OrderedEquals<TSource, TKey>(this IEnumerable<TSource>? self, IEnumerable<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 50internal static bool OrderedEquals<TSource, TKey>(this ICollection<TSource>? self, ICollection<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 92internal static bool OrderedEquals<TSource, TKey>(this IList<TSource>? self, IList<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 130IEqualityComparer<T>? comparer = null) 153IEqualityComparer<T>? comparer = null) 186IEqualityComparer<T>? comparer = null) 224IEqualityComparer<T>? comparer = null)
src\nuget-client\build\Shared\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
NuGet.PackageManagement (10)
src\nuget-client\build\Shared\EqualityUtility.cs (7)
24internal static bool OrderedEquals<TSource, TKey>(this IEnumerable<TSource>? self, IEnumerable<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 50internal static bool OrderedEquals<TSource, TKey>(this ICollection<TSource>? self, ICollection<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 92internal static bool OrderedEquals<TSource, TKey>(this IList<TSource>? self, IList<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 130IEqualityComparer<T>? comparer = null) 153IEqualityComparer<T>? comparer = null) 186IEqualityComparer<T>? comparer = null) 224IEqualityComparer<T>? comparer = null)
src\nuget-client\build\Shared\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
src\nuget-client\build\Shared\SharedExtensions.cs (1)
34public static HashSet<T>? AsHashSet<T>(this ISet<T> enumerable, IEqualityComparer<T>? comparer = null)
NuGet.Packaging (10)
src\nuget-client\build\Shared\EqualityUtility.cs (7)
24internal static bool OrderedEquals<TSource, TKey>(this IEnumerable<TSource>? self, IEnumerable<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 50internal static bool OrderedEquals<TSource, TKey>(this ICollection<TSource>? self, ICollection<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 92internal static bool OrderedEquals<TSource, TKey>(this IList<TSource>? self, IList<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 130IEqualityComparer<T>? comparer = null) 153IEqualityComparer<T>? comparer = null) 186IEqualityComparer<T>? comparer = null) 224IEqualityComparer<T>? comparer = null)
src\nuget-client\build\Shared\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
src\nuget-client\build\Shared\SharedExtensions.cs (1)
34public static HashSet<T>? AsHashSet<T>(this ISet<T> enumerable, IEqualityComparer<T>? comparer = null)
NuGet.ProjectModel (10)
LockFile\LockFileTargetLibrary.cs (1)
201bool IsListOrderedEqual<T>(PropertyKey key, Func<T, string> accessor, IEqualityComparer<T>? sequenceComparer = null)
src\nuget-client\build\Shared\EqualityUtility.cs (7)
24internal static bool OrderedEquals<TSource, TKey>(this IEnumerable<TSource>? self, IEnumerable<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 50internal static bool OrderedEquals<TSource, TKey>(this ICollection<TSource>? self, ICollection<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 92internal static bool OrderedEquals<TSource, TKey>(this IList<TSource>? self, IList<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 130IEqualityComparer<T>? comparer = null) 153IEqualityComparer<T>? comparer = null) 186IEqualityComparer<T>? comparer = null) 224IEqualityComparer<T>? comparer = null)
src\nuget-client\build\Shared\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
NuGet.Protocol (11)
src\nuget-client\build\Shared\EqualityUtility.cs (7)
24internal static bool OrderedEquals<TSource, TKey>(this IEnumerable<TSource>? self, IEnumerable<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 50internal static bool OrderedEquals<TSource, TKey>(this ICollection<TSource>? self, ICollection<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 92internal static bool OrderedEquals<TSource, TKey>(this IList<TSource>? self, IList<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 130IEqualityComparer<T>? comparer = null) 153IEqualityComparer<T>? comparer = null) 186IEqualityComparer<T>? comparer = null) 224IEqualityComparer<T>? comparer = null)
src\nuget-client\build\Shared\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
src\nuget-client\build\Shared\TaskResultCache.cs (2)
33/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to use when comparing keys.</param> 34public TaskResultCache(IEqualityComparer<TKey> comparer)
NuGet.Resolver (2)
src\nuget-client\build\Shared\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
NuGet.Versioning (10)
src\nuget-client\build\Shared\EqualityUtility.cs (7)
24internal static bool OrderedEquals<TSource, TKey>(this IEnumerable<TSource>? self, IEnumerable<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 50internal static bool OrderedEquals<TSource, TKey>(this ICollection<TSource>? self, ICollection<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 92internal static bool OrderedEquals<TSource, TKey>(this IList<TSource>? self, IList<TSource>? other, Func<TSource, TKey> keySelector, IComparer<TKey>? orderComparer = null, IEqualityComparer<TSource>? sequenceComparer = null) 130IEqualityComparer<T>? comparer = null) 153IEqualityComparer<T>? comparer = null) 186IEqualityComparer<T>? comparer = null) 224IEqualityComparer<T>? comparer = null)
src\nuget-client\build\Shared\HashCodeCombiner.cs (2)
42internal void AddObject<T>(T? o, IEqualityComparer<T> comparer) 147internal void AddUnorderedSequence<T>(IEnumerable<T>? list, IEqualityComparer<T> comparer) where T : notnull
src\nuget-client\build\Shared\SharedExtensions.cs (1)
34public static HashSet<T>? AsHashSet<T>(this ISet<T> enumerable, IEqualityComparer<T>? comparer = null)
PresentationCore (4)
System\Windows\Media\SolidColorBrush.cs (4)
239public TwoWayDictionary(IEqualityComparer<TKey> keyComparer): this (keyComparer, null) 244public TwoWayDictionary(IEqualityComparer<TValue> valueComparer) : this (null, valueComparer) 249public TwoWayDictionary(IEqualityComparer<TKey> keyComparer, IEqualityComparer<TValue> valueComparer)
PresentationFramework (6)
MS\Internal\Data\CommitManager.cs (1)
162public Set(IEqualityComparer<T> comparer)
System\Windows\Controls\Primitives\Selector.cs (5)
2665internal InternalSelectedItemsStorage(int capacity, IEqualityComparer<ItemInfo> equalityComparer) 2672internal InternalSelectedItemsStorage(InternalSelectedItemsStorage collection, IEqualityComparer<ItemInfo> equalityComparer=null) 2898private IEqualityComparer<ItemInfo> _equalityComparer; 2950bool IEqualityComparer<ItemInfo>.Equals(ItemInfo x, ItemInfo y) 2957int IEqualityComparer<ItemInfo>.GetHashCode(ItemInfo x)
RepoTasks (3)
src\aspnetcore\src\Shared\CertificateGeneration\MacOSCertificateManager.cs (3)
413public static readonly IEqualityComparer<X509Certificate2> Instance = new ThumbprintComparer(); 416bool IEqualityComparer<X509Certificate2>.Equals(X509Certificate2 x, X509Certificate2 y) => 420int IEqualityComparer<X509Certificate2>.GetHashCode([DisallowNull] X509Certificate2 obj) =>
Roslyn.Diagnostics.Analyzers (158)
src\7a47995420f988d7\AbstractRemoveUnnecessaryImportsService.cs (2)
43bool IEqualityComparer<T>.Equals(T? x, T? y) 46int IEqualityComparer<T>.GetHashCode(T obj)
src\roslyn\src\Compilers\Core\Portable\Collections\SmallDictionary.cs (3)
39public readonly IEqualityComparer<K> Comparer; 46public SmallDictionary(IEqualityComparer<K> comparer) 51public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
src\roslyn\src\Compilers\Core\Portable\FileSystem\PathUtilities.cs (1)
916public static readonly IEqualityComparer<string> Comparer = new PathComparer();
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\ConcurrentSet.cs (1)
49public ConcurrentSet(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Compilers\Core\Portable\InternalUtilities\MultiDictionary.cs (8)
103private readonly IEqualityComparer<V> _equalityComparer; 131public ValueSet(object? value, IEqualityComparer<V>? equalityComparer = null) 181public bool Contains(V v, IEqualityComparer<V> comparer) 208private readonly IEqualityComparer<V>? _valueComparer; 234public MultiDictionary(IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null) 247public MultiDictionary(int capacity, IEqualityComparer<K> comparer, IEqualityComparer<V>? valueComparer = null)
src\roslyn\src\Dependencies\Collections\Extensions\IEnumerableExtensions.cs (11)
105public static bool SetEquals<T>(this IEnumerable<T> source1, IEnumerable<T> source2, IEqualityComparer<T>? comparer) 135public static ISet<T> ToSet<T>(this IEnumerable<T> source, IEqualityComparer<T>? comparer) 258public static bool HasDuplicates<T>(this IEnumerable<T> source, IEqualityComparer<T> comparer) 271/// <seealso cref="Microsoft.CodeAnalysis.ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 273public static bool HasDuplicates<TItem, TValue>(this IEnumerable<TItem> source, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 615public static int IndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 624private static int EnumeratingIndexOf<T>(this IEnumerable<T> sequence, T value, IEqualityComparer<T> comparer) 640public static int IndexOf<T>(this IReadOnlyList<T> list, T value, IEqualityComparer<T> comparer) 698public static ImmutableDictionary<K, V> ToImmutableDictionaryOrEmpty<K, V>(this IEnumerable<KeyValuePair<K, V>>? items, IEqualityComparer<K>? keyComparer) 764internal static Dictionary<K, ImmutableArray<T>> ToMultiDictionary<K, T>(this IEnumerable<T> data, Func<T, K> keySelector, IEqualityComparer<K>? comparer = null) 945/// Variant of <see cref="System.Linq.Enumerable.SequenceEqual{TSource}(IEnumerable{TSource}, IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>
src\roslyn\src\Dependencies\Collections\Extensions\IListExtensions.cs (4)
18public static bool HasDuplicates<T>(this IReadOnlyList<T> list, IEqualityComparer<T> comparer) 31/// <seealso cref="ImmutableArrayExtensions.HasDuplicates{TItem, TValue}(System.Collections.Immutable.ImmutableArray{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 32/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 34internal static bool HasDuplicates<TItem, TValue>(this IReadOnlyList<TItem> list, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer)
src\roslyn\src\Dependencies\Collections\Extensions\ImmutableArrayExtensions.cs (9)
624public static bool SetEquals<T>(this ImmutableArray<T> array1, ImmutableArray<T> array2, IEqualityComparer<T> comparer) 754internal static bool HasDuplicates<T>(this ImmutableArray<T> array, IEqualityComparer<T> comparer) 767/// <seealso cref="Roslyn.Utilities.EnumerableExtensions.HasDuplicates{TItem, TValue}(IEnumerable{TItem}, Func{TItem, TValue}, IEqualityComparer{TValue})"/> 769internal static bool HasDuplicates<TItem, TValue>(this ImmutableArray<TItem> array, Func<TItem, TValue> selector, IEqualityComparer<TValue> comparer) 861(Dictionary<TKey, ImmutableArray<TNamespaceOrTypeSymbol>> map, IEqualityComparer<TKey> comparer) 917internal static int IndexOf<T>(this ImmutableArray<T> array, T item, IEqualityComparer<T> comparer) 1186/// Specialization of <see cref="System.Linq.Enumerable.Distinct{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/>. 1188public static ImmutableArray<T> Distinct<T>(this ImmutableArray<T> array, IEqualityComparer<T>? comparer = null) 1255/// Variant of <see cref="System.Collections.Immutable.ImmutableArray{T}.Contains(T, IEqualityComparer{T})"/>
src\roslyn\src\Dependencies\Collections\OneOrMany.cs (5)
191public bool SequenceEqual(OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 206public bool SequenceEqual(ImmutableArray<T> other, IEqualityComparer<T>? comparer = null) 209public bool SequenceEqual(IEnumerable<T> other, IEqualityComparer<T>? comparer = null) 281public static bool SequenceEqual<T>(this ImmutableArray<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null) 284public static bool SequenceEqual<T>(this IEnumerable<T> array, OneOrMany<T> other, IEqualityComparer<T>? comparer = null)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary.cs (6)
23public static ImmutableSegmentedDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 31public static ImmutableSegmentedDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) 39public static ImmutableSegmentedDictionary<TKey, TValue> CreateRange<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) 56public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> items, IEqualityComparer<TKey>? keyComparer) 72public static ImmutableSegmentedDictionary<TKey, TValue> ToImmutableSegmentedDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IEqualityComparer<TKey>? keyComparer) 90public static ImmutableSegmentedDictionary<TKey, TSource> ToImmutableSegmentedDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2.cs (2)
84public IEqualityComparer<TKey> KeyComparer => _dictionary.Comparer; 267public ImmutableSegmentedDictionary<TKey, TValue> WithComparer(IEqualityComparer<TKey>? keyComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+Builder.cs (1)
27public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedDictionary`2+ValueBuilder.cs (1)
35public IEqualityComparer<TKey> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet.cs (12)
27/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T})"/> 28public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer) 31/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T)"/> 32public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item) 35/// <inheritdoc cref="ImmutableHashSet.Create{T}(IEqualityComparer{T}?, T[])"/> 36public static ImmutableSegmentedHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items) 43/// <inheritdoc cref="ImmutableHashSet.CreateBuilder{T}(IEqualityComparer{T}?)"/> 44public static ImmutableSegmentedHashSet<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer) 56/// <inheritdoc cref="ImmutableHashSet.CreateRange{T}(IEqualityComparer{T}?, IEnumerable{T})"/> 57public static ImmutableSegmentedHashSet<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items) 74/// <inheritdoc cref="ImmutableHashSet.ToImmutableHashSet{TSource}(IEnumerable{TSource}, IEqualityComparer{TSource}?)"/> 75public static ImmutableSegmentedHashSet<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1.cs (3)
79public IEqualityComparer<T> KeyComparer => _set.Comparer; 304/// <inheritdoc cref="ImmutableHashSet{T}.WithComparer(IEqualityComparer{T}?)"/> 305public ImmutableSegmentedHashSet<T> WithComparer(IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+Builder.cs (1)
27public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+ValueBuilder.cs (1)
38public IEqualityComparer<T> KeyComparer
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1.cs (11)
306public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 339public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 372/// <inheritdoc cref="ImmutableList{T}.Remove(T, IEqualityComparer{T}?)"/> 373public ImmutableSegmentedList<T> Remove(T value, IEqualityComparer<T>? equalityComparer) 427/// <inheritdoc cref="ImmutableList{T}.RemoveRange(IEnumerable{T}, IEqualityComparer{T}?)"/> 428public ImmutableSegmentedList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 481/// <inheritdoc cref="ImmutableList{T}.Replace(T, T, IEqualityComparer{T}?)"/> 482public ImmutableSegmentedList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 618IImmutableList<T> IImmutableList<T>.Remove(T value, IEqualityComparer<T>? equalityComparer) 624IImmutableList<T> IImmutableList<T>.RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 636IImmutableList<T> IImmutableList<T>.Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+Builder.cs (4)
157/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.IndexOf(T, int, int, IEqualityComparer{T}?)"/> 158public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 180/// <inheritdoc cref="System.Collections.Immutable.ImmutableList{T}.Builder.LastIndexOf(T, int, int, IEqualityComparer{T}?)"/> 181public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\ImmutableSegmentedList`1+ValueBuilder.cs (2)
208public readonly int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 244public readonly int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedArray.cs (2)
216public static int IndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer) 281public static int LastIndexOf<T>(SegmentedArray<T> array, T value, int startIndex, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedDictionary`2.cs (10)
62private readonly IEqualityComparer<TKey> _comparer; 78public SegmentedDictionary(IEqualityComparer<TKey>? comparer) 83public SegmentedDictionary(int capacity, IEqualityComparer<TKey>? comparer) 123public SegmentedDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey>? comparer) 139public SegmentedDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) 222public IEqualityComparer<TKey> Comparer 409var comparer = _comparer; 523var comparer = _comparer; 710var comparer = _comparer; 787var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedHashSet`1.cs (10)
69private readonly IEqualityComparer<T> _comparer; 74public SegmentedHashSet() : this((IEqualityComparer<T>?)null) { } 76public SegmentedHashSet(IEqualityComparer<T>? comparer) 105public SegmentedHashSet(IEnumerable<T> collection, IEqualityComparer<T>? comparer) : this(comparer) 138public SegmentedHashSet(int capacity, IEqualityComparer<T>? comparer) : this(comparer) 230var comparer = _comparer; 301IEqualityComparer<T>? comparer = _comparer; 865public IEqualityComparer<T> Comparer 992public static IEqualityComparer<SegmentedHashSet<T>> CreateSetComparer() => new SegmentedHashSetEqualityComparer<T>(); 1028var comparer = _comparer;
src\roslyn\src\Dependencies\Collections\Segmented\SegmentedList`1.cs (2)
840public int IndexOf(T item, int index, int count, IEqualityComparer<T>? comparer) 1031public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? comparer)
src\roslyn\src\Dependencies\Collections\TemporaryArray`1.cs (2)
252public readonly bool Contains(T value, IEqualityComparer<T>? equalityComparer = null) 255public readonly int IndexOf(T value, IEqualityComparer<T>? equalityComparer = null)
src\roslyn\src\Dependencies\PooledObjects\ArrayBuilder.cs (2)
209public int IndexOf(T item, IEqualityComparer<T> equalityComparer) 613internal Dictionary<K, ImmutableArray<T>> ToDictionary<K>(Func<T, K> keySelector, IEqualityComparer<K>? comparer = null)
src\roslyn\src\Dependencies\PooledObjects\PooledDictionary.cs (2)
27private PooledDictionary(ObjectPool<PooledDictionary<K, V>> pool, IEqualityComparer<K> keyComparer) 52public static ObjectPool<PooledDictionary<K, V>> CreatePool(IEqualityComparer<K> keyComparer)
src\roslyn\src\Dependencies\PooledObjects\PooledHashSet.cs (2)
25private PooledHashSet(ObjectPool<PooledHashSet<T>> pool, IEqualityComparer<T> equalityComparer) : 41public static ObjectPool<PooledHashSet<T>> CreatePool(IEqualityComparer<T> equalityComparer)
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`1.cs (1)
20IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\Dependencies\Threading\AsyncBatchingWorkQueue`2.cs (2)
39private readonly IEqualityComparer<TItem>? _equalityComparer; 114IEqualityComparer<TItem>? equalityComparer,
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledConcurrentDictionary.cs (5)
29private PooledConcurrentDictionary(ObjectPool<PooledConcurrentDictionary<K, V>>? pool, IEqualityComparer<K> keyComparer) 52private static readonly ConcurrentDictionary<IEqualityComparer<K>, ObjectPool<PooledConcurrentDictionary<K, V>>> s_poolInstancesByComparer = new(); 55public static ObjectPool<PooledConcurrentDictionary<K, V>> CreatePool(IEqualityComparer<K>? keyComparer = null) 66public static PooledConcurrentDictionary<K, V> GetInstance(IEqualityComparer<K>? keyComparer = null) 76public static PooledConcurrentDictionary<K, V> GetInstance(IEnumerable<KeyValuePair<K, V>> initializer, IEqualityComparer<K>? keyComparer = null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledConcurrentSet.cs (2)
33public static PooledConcurrentSet<T> GetInstance(IEqualityComparer<T>? comparer = null) 39public static PooledConcurrentSet<T> GetInstance(IEnumerable<T> initializer, IEqualityComparer<T>? comparer = null)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\PooledObjects\PooledDictionary.cs (4)
24Func<KeyValuePair<K, V>, TKey> keySelector, Func<KeyValuePair<K, V>, TValue> elementSelector, IEqualityComparer<TKey> comparer) 42private static readonly ConcurrentDictionary<IEqualityComparer<K>, ObjectPool<PooledDictionary<K, V>>> s_poolInstancesByComparer 46IEqualityComparer<K>? keyComparer 67IEqualityComparer<K>? keyComparer = null
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\RoslynHashCode.cs (1)
316public void Add<T>(T value, IEqualityComparer<T>? comparer)
src\roslyn\src\RoslynAnalyzers\Utilities\Compiler\SmallDictionary.cs (3)
41public readonly IEqualityComparer<K> Comparer; 48public SmallDictionary(IEqualityComparer<K> comparer) 53public SmallDictionary(SmallDictionary<K, V> other, IEqualityComparer<K> comparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Extensions\ImmutableArrayExtensions.cs (1)
21public static bool Contains<T>(this ImmutableArray<T> items, T item, IEqualityComparer<T>? equalityComparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Helpers\RemoveUnnecessaryImports\AbstractUnnecessaryImportsProvider.cs (2)
46bool IEqualityComparer<TSyntaxNode>.Equals([AllowNull] TSyntaxNode x, [AllowNull] TSyntaxNode y) 49int IEqualityComparer<TSyntaxNode>.GetHashCode([DisallowNull] TSyntaxNode obj)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.cs (2)
133/// Returns an <see cref="IEqualityComparer{T}"/> that determines if two <see cref="SymbolKey"/>s 145public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase = false, bool ignoreAssemblyKeys = false)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\SymbolKey\SymbolKey.SymbolKeyComparer.cs (2)
52public static IEqualityComparer<SymbolKey> GetComparer(bool ignoreCase, bool ignoreAssemblyKey) 63public static IEqualityComparer<SymbolKey> GetComparer(ComparisonOptions options)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AsyncPriorityWorkQueue.cs (1)
75IEqualityComparer<TItem> equalityComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\BidirectionalMap.cs (4)
23public BidirectionalMap(IEnumerable<KeyValuePair<TKey, TValue>> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null) 29public BidirectionalMap(IEnumerable<(TKey key, TValue value)> pairs, IEqualityComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\IDictionaryExtensions.cs (1)
100public static bool MultiAdd<TKey, TValue>(this IDictionary<TKey, ImmutableHashSet<TValue>> dictionary, TKey key, TValue value, IEqualityComparer<TValue>? comparer = null)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\ReferenceCountedDisposableCache.cs (1)
26public ReferenceCountedDisposableCache(IEqualityComparer<TKey> comparer)
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SignatureComparer.cs (2)
25private IEqualityComparer<IParameterSymbol> ParameterEquivalenceComparer => _symbolEquivalenceComparer.ParameterEquivalenceComparer; 27private IEqualityComparer<ITypeSymbol> SignatureTypeEquivalenceComparer => _symbolEquivalenceComparer.SignatureTypeEquivalenceComparer;
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.AssemblyComparers.cs (1)
15public static readonly IEqualityComparer<IAssemblySymbol> Instance = new SimpleNameAssemblyComparer();
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Extensions\Symbols\SymbolEquivalenceComparer.cs (2)
50private readonly IEqualityComparer<IAssemblySymbol>? _assemblyComparer; 62IEqualityComparer<IAssemblySymbol>? assemblyComparer,
src\roslyn\src\Workspaces\SharedUtilitiesAndExtensions\Workspace\Core\FindSymbols\LinkedFileReferenceLocationEqualityComparer.cs (1)
16public static readonly IEqualityComparer<ReferenceLocation> Instance = new LinkedFileReferenceLocationEqualityComparer();
rzc (1)
ConcurrentLruCache.cs (1)
29public ConcurrentLruCache(int capacity, IEqualityComparer<TKey> comparer)
Shared (6)
Pools\PooledDictionaryPolicy.cs (2)
17private readonly IEqualityComparer<TKey>? _comparer; 19public PooledDictionaryPolicy(IEqualityComparer<TKey>? comparer = null)
Pools\PooledSetPolicy.cs (2)
17private readonly IEqualityComparer<T>? _comparer; 19public PooledSetPolicy(IEqualityComparer<T>? comparer = null)
Pools\PoolFactory.cs (2)
152public static ObjectPool<Dictionary<TKey, TValue>> CreateDictionaryPool<TKey, TValue>(IEqualityComparer<TKey>? comparer = null, int maxCapacity = DefaultCapacity) 171public static ObjectPool<HashSet<T>> CreateHashSetPool<T>(IEqualityComparer<T>? comparer = null, int maxCapacity = DefaultCapacity)
System.Collections (32)
System\Collections\Generic\OrderedDictionary.cs (22)
39private IEqualityComparer<TKey>? _comparer; 75/// has the default initial capacity, and uses the specified <see cref="IEqualityComparer{TKey}"/>. 78/// The <see cref="IEqualityComparer{TKey}"/> implementation to use when comparing keys, 81public OrderedDictionary(IEqualityComparer<TKey>? comparer) : this(0, comparer) 87/// has the specified initial capacity, and uses the specified <see cref="IEqualityComparer{TKey}"/>. 91/// The <see cref="IEqualityComparer{TKey}"/> implementation to use when comparing keys, 95public OrderedDictionary(int capacity, IEqualityComparer<TKey>? comparer) 121NonRandomizedStringEqualityComparer.GetStringComparer(_comparer) is IEqualityComparer<string> stringComparer) 123_comparer = (IEqualityComparer<TKey>)stringComparer; 149/// the specified <see cref="IDictionary{TKey, TValue}"/> and uses the specified <see cref="IEqualityComparer{TKey}"/>. 156/// The <see cref="IEqualityComparer{TKey}"/> implementation to use when comparing keys, 160public OrderedDictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey>? comparer) : 183/// from the specified <see cref="IEnumerable{T}"/> and uses the specified <see cref="IEqualityComparer{TKey}"/>. 190/// The <see cref="IEqualityComparer{TKey}"/> implementation to use when comparing keys, 194public OrderedDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) : 214/// <summary>Gets the <see cref="IEqualityComparer{TKey}"/> that is used to determine equality of keys for the dictionary.</summary> 215public IEqualityComparer<TKey> Comparer 219IEqualityComparer<TKey>? comparer = _comparer; 225(comparer as NonRandomizedStringEqualityComparer)?.GetUnderlyingEqualityComparer() is IEqualityComparer<TKey> ec) 620IEqualityComparer<TKey>? comparer = _comparer; 1108IEqualityComparer<TKey> comparer = _comparer = (IEqualityComparer<TKey>)((NonRandomizedStringEqualityComparer)_comparer).GetUnderlyingEqualityComparer();
System\Collections\Generic\PriorityQueue.cs (2)
518IEqualityComparer<TElement>? equalityComparer = null) 877private int FindIndex(TElement element, IEqualityComparer<TElement>? equalityComparer)
System\Collections\Generic\SortedSet.cs (5)
770/// Returns an <see cref="IEqualityComparer{T}"/> object that can be used to create a collection that contains individual sets. 772public static IEqualityComparer<SortedSet<T>> CreateSetComparer() => CreateSetComparer(memberEqualityComparer: null); 775/// Returns an <see cref="IEqualityComparer{T}"/> object, according to a specified comparer, that can be used to create a collection that contains individual sets. 777public static IEqualityComparer<SortedSet<T>> CreateSetComparer(IEqualityComparer<T>? memberEqualityComparer)
System\Collections\Generic\SortedSetEqualityComparer.cs (3)
14private readonly IEqualityComparer<T> _memberEqualityComparer; 16public SortedSetEqualityComparer(IEqualityComparer<T>? memberEqualityComparer) 24private SortedSetEqualityComparer(IComparer<T>? comparer, IEqualityComparer<T>? memberEqualityComparer)
System.Collections.Immutable (224)
System\Collections\Frozen\DefaultFrozenDictionary.cs (1)
23IEqualityComparer<TKey> comparer = Comparer;
System\Collections\Frozen\DefaultFrozenSet.cs (2)
20IEqualityComparer<T> comparer = Comparer; 47public IEqualityComparer<T> Comparer => _set.Comparer;
System\Collections\Frozen\EmptyFrozenDictionary.cs (1)
14internal EmptyFrozenDictionary(IEqualityComparer<TKey> comparer) : base(comparer) { }
System\Collections\Frozen\EmptyFrozenSet.cs (1)
12internal EmptyFrozenSet(IEqualityComparer<T> comparer) : base(comparer) { }
System\Collections\Frozen\FrozenDictionary.cs (12)
42public static FrozenDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? comparer, params ReadOnlySpan<KeyValuePair<TKey, TValue>> source) 73public static FrozenDictionary<TKey, TValue> ToFrozenDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> source, IEqualityComparer<TKey>? comparer = null) 83/// <param name="comparer">An <see cref="IEqualityComparer{TKey}"/> to compare keys.</param> 86this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer = null) 97/// <param name="comparer">An <see cref="IEqualityComparer{TKey}"/> to compare keys.</param> 100this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey>? comparer = null) 115IEnumerable<KeyValuePair<TKey, TValue>> source, IEqualityComparer<TKey>? comparer, 163IEqualityComparer<TKey> comparer = source.Comparer; 208IEqualityComparer<string> stringComparer = (IEqualityComparer<string>)(object)comparer; 315private protected FrozenDictionary(IEqualityComparer<TKey> comparer) => Comparer = comparer; 321public IEqualityComparer<TKey> Comparer { get; }
System\Collections\Frozen\FrozenSet.cs (8)
29public static FrozenSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params ReadOnlySpan<T> source) 57public static FrozenSet<T> ToFrozenSet<T>(this IEnumerable<T> source, IEqualityComparer<T>? comparer = null) => 62private static FrozenSet<T>? GetExistingFrozenOrNewSet<T>(IEnumerable<T> source, IEqualityComparer<T>? comparer, out HashSet<T>? newSet) 99IEqualityComparer<T> comparer = source.Comparer; 138IEqualityComparer<string> stringComparer = (IEqualityComparer<string>)(object)comparer; 248private protected FrozenSet(IEqualityComparer<T> comparer) => Comparer = comparer; 254public IEqualityComparer<T> Comparer { get; }
System\Collections\Frozen\FrozenSetInternalBase.cs (2)
24protected FrozenSetInternalBase(IEqualityComparer<T> comparer) : base(comparer) 277IEqualityComparer<T> Comparer { get; }
System\Collections\Frozen\Int32\Int32FrozenSet.cs (1)
67public IEqualityComparer<int> Comparer => _set.Comparer;
System\Collections\Frozen\SmallFrozenDictionary.cs (1)
39IEqualityComparer<TKey> comparer = Comparer;
System\Collections\Frozen\SmallFrozenSet.cs (1)
49public IEqualityComparer<T> Comparer => _set.Comparer;
System\Collections\Frozen\SmallValueTypeComparableFrozenSet.cs (1)
71public IEqualityComparer<T> Comparer => _set.Comparer;
System\Collections\Frozen\SmallValueTypeDefaultComparerFrozenSet.cs (1)
51public IEqualityComparer<T> Comparer => _set.Comparer;
System\Collections\Frozen\String\LengthBuckets.cs (1)
17internal static int[]? CreateLengthBucketsArrayIfAppropriate(string[] keys, IEqualityComparer<string> comparer, int minLength, int maxLength)
System\Collections\Frozen\String\LengthBucketsFrozenDictionary.cs (2)
20string[] keys, TValue[] values, int[] lengthBuckets, int minLength, IEqualityComparer<string> comparer) 33string[] keys, TValue[] values, IEqualityComparer<string> comparer, int minLength, int maxLength)
System\Collections\Frozen\String\LengthBucketsFrozenSet.cs (3)
18string[] items, int[] lengthBuckets, int minLength, IEqualityComparer<string> comparer) 30string[] items, IEqualityComparer<string> comparer, int minLength, int maxLength) 115public IEqualityComparer<string> Comparer => _set.Comparer;
System\Collections\Frozen\String\OrdinalStringFrozenDictionary_Full.cs (1)
15IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenDictionary_FullCaseInsensitive.cs (1)
15IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenDictionary_FullCaseInsensitiveAscii.cs (1)
15IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenDictionary_LeftJustifiedCaseInsensitiveAsciiSubstring.cs (1)
13IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenDictionary_LeftJustifiedCaseInsensitiveSubstring.cs (1)
13IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenDictionary_LeftJustifiedSingleChar.cs (1)
13IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenDictionary_LeftJustifiedSubstring.cs (1)
13IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenDictionary_RightJustifiedCaseInsensitiveAsciiSubstring.cs (1)
13IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenDictionary_RightJustifiedCaseInsensitiveSubstring.cs (1)
13IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenDictionary_RightJustifiedSingleChar.cs (1)
13IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenDictionary_RightJustifiedSubstring.cs (1)
13IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenDictionary.cs (1)
23IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenSet_Full.cs (1)
14IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenSet_FullCaseInsensitive.cs (1)
14IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenSet_FullCaseInsensitiveAscii.cs (1)
14IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenSet_LeftJustifiedCaseInsensitiveAsciiSubstring.cs (1)
12IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenSet_LeftJustifiedCaseInsensitiveSubstring.cs (1)
12IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenSet_LeftJustifiedSingleChar.cs (1)
12IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenSet_LeftJustifiedSubstring.cs (1)
12IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenSet_RightJustifiedCaseInsensitiveAsciiSubstring.cs (1)
12IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenSet_RightJustifiedCaseInsensitiveSubstring.cs (1)
12IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenSet_RightJustifiedSingleChar.cs (1)
12IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenSet_RightJustifiedSubstring.cs (1)
12IEqualityComparer<string> comparer,
System\Collections\Frozen\String\OrdinalStringFrozenSet.cs (2)
20IEqualityComparer<string> comparer, 117public IEqualityComparer<string> Comparer => _set.Comparer;
System\Collections\Frozen\ValueTypeDefaultComparerFrozenSet.cs (1)
47public IEqualityComparer<T> Comparer => _set.Comparer;
System\Collections\Immutable\IImmutableList.cs (5)
50int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer); 73int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer); 114IImmutableList<T> Remove(T value, IEqualityComparer<T>? equalityComparer); 140IImmutableList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer); 178IImmutableList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer);
System\Collections\Immutable\ImmutableArray_1.Builder.cs (6)
520public bool Remove(T element, IEqualityComparer<T>? equalityComparer) 624public void RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 660public void Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 794public int IndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer) 833public int IndexOf(T item, int startIndex, IEqualityComparer<T>? equalityComparer) 891public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer)
System\Collections\Immutable\ImmutableArray_1.cs (13)
125public int IndexOf(T item, int startIndex, IEqualityComparer<T>? equalityComparer) 166public int IndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer) 251public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer) 302public bool Contains(T item, IEqualityComparer<T>? equalityComparer) 589public ImmutableArray<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 622public ImmutableArray<T> Remove(T item, IEqualityComparer<T>? equalityComparer) 689public ImmutableArray<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 730public ImmutableArray<T> RemoveRange(ImmutableArray<T> items, IEqualityComparer<T>? equalityComparer) 980public ImmutableArray<T> RemoveRange(ReadOnlySpan<T> items, IEqualityComparer<T>? equalityComparer = null) 1018public ImmutableArray<T> RemoveRange(T[] items, IEqualityComparer<T>? equalityComparer = null) 1121IImmutableList<T> IImmutableList<T>.Remove(T value, IEqualityComparer<T>? equalityComparer) 1141IImmutableList<T> IImmutableList<T>.RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 1181IImmutableList<T> IImmutableList<T>.Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
System\Collections\Immutable\ImmutableDictionary_2.Builder.cs (2)
79public IEqualityComparer<TKey> KeyComparer 109public IEqualityComparer<TValue> ValueComparer
System\Collections\Immutable\ImmutableDictionary_2.Comparers.cs (13)
31private readonly IEqualityComparer<TKey> _keyComparer; 36private readonly IEqualityComparer<TValue> _valueComparer; 43internal Comparers(IEqualityComparer<TKey> keyComparer, IEqualityComparer<TValue> valueComparer) 58internal IEqualityComparer<TKey> KeyComparer 69internal IEqualityComparer<KeyValuePair<TKey, TValue>> KeyOnlyComparer 80internal IEqualityComparer<TValue> ValueComparer 88internal IEqualityComparer<HashBucket> HashBucketEqualityComparer 128bool IEqualityComparer<KeyValuePair<TKey, TValue>>.Equals(KeyValuePair<TKey, TValue> x, KeyValuePair<TKey, TValue> y) 140int IEqualityComparer<KeyValuePair<TKey, TValue>>.GetHashCode(KeyValuePair<TKey, TValue> obj) 151internal static Comparers Get(IEqualityComparer<TKey> keyComparer, IEqualityComparer<TValue> valueComparer) 167internal Comparers WithValueComparer(IEqualityComparer<TValue> valueComparer)
System\Collections\Immutable\ImmutableDictionary_2.cs (8)
152public IEqualityComparer<TKey> KeyComparer 160public IEqualityComparer<TValue> ValueComparer 432public ImmutableDictionary<TKey, TValue> WithComparers(IEqualityComparer<TKey>? keyComparer, IEqualityComparer<TValue>? valueComparer) 464public ImmutableDictionary<TKey, TValue> WithComparers(IEqualityComparer<TKey>? keyComparer) 1024private static SortedInt32KeyNode<HashBucket> UpdateRoot(SortedInt32KeyNode<HashBucket> root, int hashCode, HashBucket newBucket, IEqualityComparer<HashBucket> hashBucketComparer) 1080/// <param name="avoidToHashMap"><c>true</c> when being called from <see cref="WithComparers(IEqualityComparer{TKey}, IEqualityComparer{TValue})"/> to avoid a stack overflow.</param>
System\Collections\Immutable\ImmutableDictionary_2.HashBucket.cs (3)
140internal HashBucket Add(TKey key, TValue value, IEqualityComparer<KeyValuePair<TKey, TValue>> keyOnlyComparer, IEqualityComparer<TValue> valueComparer, KeyCollisionBehavior behavior, out OperationResult result) 214internal HashBucket Remove(TKey key, IEqualityComparer<KeyValuePair<TKey, TValue>> keyOnlyComparer, out OperationResult result)
System\Collections\Immutable\ImmutableDictionary_2.MutationInput.cs (4)
72internal IEqualityComparer<TKey> KeyComparer 80internal IEqualityComparer<KeyValuePair<TKey, TValue>> KeyOnlyComparer 88internal IEqualityComparer<TValue> ValueComparer 96internal IEqualityComparer<HashBucket> HashBucketComparer
System\Collections\Immutable\ImmutableDictionary.cs (18)
35public static ImmutableDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) where TKey : notnull 50public static ImmutableDictionary<TKey, TValue> Create<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEqualityComparer<TValue>? valueComparer) where TKey : notnull 94public static ImmutableDictionary<TKey, TValue> CreateRange<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) where TKey : notnull 108/// In contrast to <see cref="CreateRange{TKey, TValue}(IEqualityComparer{TKey}?, IEnumerable{KeyValuePair{TKey, TValue}})"/>, 113IEqualityComparer<TKey>? keyComparer, 129public static ImmutableDictionary<TKey, TValue> CreateRange<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEqualityComparer<TValue>? valueComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) where TKey : notnull 152public static ImmutableDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IEqualityComparer<TKey>? keyComparer) where TKey : notnull 165public static ImmutableDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IEqualityComparer<TKey>? keyComparer, IEqualityComparer<TValue>? valueComparer) where TKey : notnull 182public static ImmutableDictionary<TKey, TValue> ToImmutableDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IEqualityComparer<TKey>? keyComparer, IEqualityComparer<TValue>? valueComparer) where TKey : notnull 215public static ImmutableDictionary<TKey, TValue> ToImmutableDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IEqualityComparer<TKey>? keyComparer) where TKey : notnull 242public static ImmutableDictionary<TKey, TSource> ToImmutableDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer) where TKey : notnull 271public static ImmutableDictionary<TKey, TValue> ToImmutableDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> source, IEqualityComparer<TKey>? keyComparer, IEqualityComparer<TValue>? valueComparer) where TKey : notnull 291public static ImmutableDictionary<TKey, TValue> ToImmutableDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> source, IEqualityComparer<TKey>? keyComparer) where TKey : notnull
System\Collections\Immutable\ImmutableHashSet_1.Builder.cs (3)
40private IEqualityComparer<T> _equalityComparer; 45private readonly IEqualityComparer<HashBucket> _hashBucketEqualityComparer; 105public IEqualityComparer<T> KeyComparer
System\Collections\Immutable\ImmutableHashSet_1.cs (15)
37private readonly IEqualityComparer<T> _equalityComparer; 52private readonly IEqualityComparer<HashBucket> _hashBucketEqualityComparer; 58internal ImmutableHashSet(IEqualityComparer<T> equalityComparer) 69private ImmutableHashSet(SortedInt32KeyNode<HashBucket> root, IEqualityComparer<T> equalityComparer, int count) 108public IEqualityComparer<T> KeyComparer 416public ImmutableHashSet<T> WithComparer(IEqualityComparer<T>? equalityComparer) 746if (EqualityComparer<IEqualityComparer<T>>.Default.Equals(origin.EqualityComparer, otherAsImmutableHashSet.KeyComparer)) 762if (EqualityComparer<IEqualityComparer<T>>.Default.Equals(origin.EqualityComparer, otherAsHashset.Comparer)) 830private static SortedInt32KeyNode<HashBucket> UpdateRoot(SortedInt32KeyNode<HashBucket> root, int hashCode, IEqualityComparer<HashBucket> hashBucketEqualityComparer, HashBucket newBucket) 867private static MutationResult Except(IEnumerable<T> other, IEqualityComparer<T> equalityComparer, IEqualityComparer<HashBucket> hashBucketEqualityComparer, SortedInt32KeyNode<HashBucket> root) 1043private static ImmutableHashSet<T> Wrap(SortedInt32KeyNode<HashBucket> root, IEqualityComparer<T> equalityComparer, int count) 1052/// Gets the <see cref="IEqualityComparer{HashBucket}"/> to use. 1056private static IEqualityComparer<HashBucket> GetHashBucketEqualityComparer(IEqualityComparer<T> valueComparer)
System\Collections\Immutable\ImmutableHashSet_1.HashBucket.cs (5)
118internal bool EqualsByValue(HashBucket other, IEqualityComparer<T> valueComparer) 131internal HashBucket Add(T value, IEqualityComparer<T> valueComparer, out OperationResult result) 154internal bool Contains(T value, IEqualityComparer<T> valueComparer) 173internal bool TryExchange(T value, IEqualityComparer<T> valueComparer, out T existingValue) 202internal HashBucket Remove(T value, IEqualityComparer<T> equalityComparer, out OperationResult result)
System\Collections\Immutable\ImmutableHashSet_1.HashBucketByRefEqualityComparer.cs (2)
22private static readonly IEqualityComparer<HashBucket> s_defaultInstance = new HashBucketByRefEqualityComparer(); 27internal static IEqualityComparer<HashBucket> DefaultInstance => s_defaultInstance;
System\Collections\Immutable\ImmutableHashSet_1.HashBucketByValueEqualityComparer.cs (4)
22private static readonly IEqualityComparer<HashBucket> s_defaultInstance = new HashBucketByValueEqualityComparer(EqualityComparer<T>.Default); 28internal static IEqualityComparer<HashBucket> DefaultInstance => s_defaultInstance; 33private readonly IEqualityComparer<T> _valueComparer; 39internal HashBucketByValueEqualityComparer(IEqualityComparer<T> valueComparer)
System\Collections\Immutable\ImmutableHashSet_1.MutationInput.cs (6)
27private readonly IEqualityComparer<T> _equalityComparer; 37private readonly IEqualityComparer<HashBucket> _hashBucketEqualityComparer; 59internal MutationInput(SortedInt32KeyNode<HashBucket> root, IEqualityComparer<T> equalityComparer, IEqualityComparer<HashBucket> hashBucketEqualityComparer, int count) 83internal IEqualityComparer<T> EqualityComparer 99internal IEqualityComparer<HashBucket> HashBucketEqualityComparer => _hashBucketEqualityComparer;
System\Collections\Immutable\ImmutableHashSet.cs (7)
31public static ImmutableHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer) 54public static ImmutableHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item) 77public static ImmutableHashSet<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items) 113public static ImmutableHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items) 127public static ImmutableHashSet<T> Create<T>(IEqualityComparer<T>? equalityComparer, params ReadOnlySpan<T> items) 150public static ImmutableHashSet<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer) 162public static ImmutableHashSet<TSource> ToImmutableHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
System\Collections\Immutable\ImmutableList_1.Builder.cs (5)
569public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) => 661public int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer) => 747public bool Remove(T item, IEqualityComparer<T>? equalityComparer) 784public void RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 828public void Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer)
System\Collections\Immutable\ImmutableList_1.cs (8)
286public ImmutableList<T> Remove(T value, IEqualityComparer<T>? equalityComparer) 333public ImmutableList<T> RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) 399public ImmutableList<T> Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) 757public int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) => _root.IndexOf(item, index, count, equalityComparer); 779public int LastIndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) => _root.LastIndexOf(item, index, count, equalityComparer); 842IImmutableList<T> IImmutableList<T>.Remove(T value, IEqualityComparer<T>? equalityComparer) => this.Remove(value, equalityComparer); 852IImmutableList<T> IImmutableList<T>.RemoveRange(IEnumerable<T> items, IEqualityComparer<T>? equalityComparer) => this.RemoveRange(items, equalityComparer); 885IImmutableList<T> IImmutableList<T>.Replace(T oldValue, T newValue, IEqualityComparer<T>? equalityComparer) => this.Replace(oldValue, newValue, equalityComparer);
System\Collections\Immutable\ImmutableList_1.Node.cs (5)
718internal int IndexOf(T item, IEqualityComparer<T>? equalityComparer) => this.IndexOf(item, 0, this.Count, equalityComparer); 733internal bool Contains(T item, IEqualityComparer<T> equalityComparer) => Contains(this, item, equalityComparer); 760internal int IndexOf(T item, int index, int count, IEqualityComparer<T>? equalityComparer) 800internal int LastIndexOf(T item, int startIndex, int count, IEqualityComparer<T>? equalityComparer) 1595private static bool Contains(Node node, T value, IEqualityComparer<T> equalityComparer) => !node.IsEmpty && (equalityComparer.Equals(value, node._key) || Contains(node._left!, value, equalityComparer) || Contains(node._right!, value, equalityComparer));
System\Collections\Immutable\ImmutableList.cs (2)
167public static int IndexOf<T>(this IImmutableList<T> list, T item, IEqualityComparer<T>? equalityComparer) 266public static int LastIndexOf<T>(this IImmutableList<T> list, T item, IEqualityComparer<T>? equalityComparer)
System\Collections\Immutable\ImmutableSortedDictionary_2.Builder.cs (2)
45private IEqualityComparer<TValue> _valueComparer = EqualityComparer<TValue>.Default; 317public IEqualityComparer<TValue> ValueComparer
System\Collections\Immutable\ImmutableSortedDictionary_2.cs (7)
44private readonly IEqualityComparer<TValue> _valueComparer; 51internal ImmutableSortedDictionary(IComparer<TKey>? keyComparer = null, IEqualityComparer<TValue>? valueComparer = null) 65private ImmutableSortedDictionary(Node root, int count, IComparer<TKey> keyComparer, IEqualityComparer<TValue> valueComparer) 92public IEqualityComparer<TValue> ValueComparer 321public ImmutableSortedDictionary<TKey, TValue> WithComparers(IComparer<TKey>? keyComparer, IEqualityComparer<TValue>? valueComparer) 739private static ImmutableSortedDictionary<TKey, TValue> Wrap(Node root, int count, IComparer<TKey> keyComparer, IEqualityComparer<TValue> valueComparer) 775/// <param name="avoidToSortedMap"><c>true</c> when being called from <see cref="WithComparers(IComparer{TKey}, IEqualityComparer{TValue})"/> to avoid a stack overflow.</param>
System\Collections\Immutable\ImmutableSortedDictionary_2.Node.cs (5)
247internal Node Add(TKey key, TValue value, IComparer<TKey> keyComparer, IEqualityComparer<TValue> valueComparer, out bool mutated) 265internal Node SetItem(TKey key, TValue value, IComparer<TKey> keyComparer, IEqualityComparer<TValue> valueComparer, out bool replacedExistingValue, out bool mutated) 391internal bool ContainsValue(TValue value, IEqualityComparer<TValue> valueComparer) 413internal bool Contains(KeyValuePair<TKey, TValue> pair, IComparer<TKey> keyComparer, IEqualityComparer<TValue> valueComparer) 619private Node SetOrAdd(TKey key, TValue value, IComparer<TKey> keyComparer, IEqualityComparer<TValue> valueComparer, bool overwriteExistingValue, out bool replacedExistingValue, out bool mutated)
System\Collections\Immutable\ImmutableSortedDictionary.cs (5)
46public static ImmutableSortedDictionary<TKey, TValue> Create<TKey, TValue>(IComparer<TKey>? keyComparer, IEqualityComparer<TValue>? valueComparer) where TKey : notnull 85public static ImmutableSortedDictionary<TKey, TValue> CreateRange<TKey, TValue>(IComparer<TKey>? keyComparer, IEqualityComparer<TValue>? valueComparer, IEnumerable<KeyValuePair<TKey, TValue>> items) where TKey : notnull 121public static ImmutableSortedDictionary<TKey, TValue>.Builder CreateBuilder<TKey, TValue>(IComparer<TKey>? keyComparer, IEqualityComparer<TValue>? valueComparer) where TKey : notnull 138public static ImmutableSortedDictionary<TKey, TValue> ToImmutableSortedDictionary<TSource, TKey, TValue>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TValue> elementSelector, IComparer<TKey>? keyComparer, IEqualityComparer<TValue>? valueComparer) where TKey : notnull 200public static ImmutableSortedDictionary<TKey, TValue> ToImmutableSortedDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> source, IComparer<TKey>? keyComparer, IEqualityComparer<TValue>? valueComparer) where TKey : notnull
System\Collections\Immutable\SortedInt32KeyNode.cs (2)
158internal SortedInt32KeyNode<TValue> SetItem(int key, TValue value, IEqualityComparer<TValue> valueComparer, out bool replacedExistingValue, out bool mutated) 403private SortedInt32KeyNode<TValue> SetOrAdd(int key, TValue value, IEqualityComparer<TValue> valueComparer, bool overwriteExistingValue, out bool replacedExistingValue, out bool mutated)
System\Linq\ImmutableArrayExtensions.cs (5)
157public static bool SequenceEqual<TDerived, TBase>(this ImmutableArray<TBase> immutableArray, ImmutableArray<TDerived> items, IEqualityComparer<TBase>? comparer = null) where TDerived : TBase 189public static bool SequenceEqual<TDerived, TBase>(this ImmutableArray<TBase> immutableArray, IEnumerable<TDerived> items, IEqualityComparer<TBase>? comparer = null) where TDerived : TBase 199static bool Enumerate(ImmutableArray<TBase> immutableArray, IEnumerable<TDerived> items, IEqualityComparer<TBase>? comparer) 586public static Dictionary<TKey, T> ToDictionary<TKey, T>(this ImmutableArray<T> immutableArray, Func<T, TKey> keySelector, IEqualityComparer<TKey>? comparer) where TKey : notnull 610public static Dictionary<TKey, TElement> ToDictionary<TKey, TElement, T>(this ImmutableArray<T> immutableArray, Func<T, TKey> keySelector, Func<T, TElement> elementSelector, IEqualityComparer<TKey>? comparer) where TKey : notnull
System.Data.Common (1)
System\Data\Common\ObjectStorage.cs (1)
643internal static readonly IEqualityComparer<KeyValuePair<Type, XmlRootAttribute>> s_default = new TempAssemblyComparer();
System.IO.Packaging (2)
System\IO\Packaging\ZipPackage.cs (2)
733bool IEqualityComparer<string>.Equals(string? extensionA, string? extensionB) 745int IEqualityComparer<string>.GetHashCode(string extension)
System.Linq (117)
System\Linq\AggregateBy.cs (8)
21/// <param name="keyComparer">An <see cref="IEqualityComparer{T}"/> to compare keys with.</param> 32IEqualityComparer<TKey>? keyComparer = null) where TKey : notnull 65/// <param name="keyComparer">An <see cref="IEqualityComparer{T}"/> to compare keys with.</param> 76IEqualityComparer<TKey>? keyComparer = null) where TKey : notnull 103private static IEnumerable<KeyValuePair<TKey, TAccumulate>> AggregateByIterator<TSource, TKey, TAccumulate>(IEnumerable<TSource> source, Func<TSource, TKey> keySelector, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> func, IEqualityComparer<TKey>? keyComparer) where TKey : notnull 117static Dictionary<TKey, TAccumulate> PopulateDictionary(IEnumerator<TSource> enumerator, Func<TSource, TKey> keySelector, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> func, IEqualityComparer<TKey>? keyComparer) 135private static IEnumerable<KeyValuePair<TKey, TAccumulate>> AggregateByIterator<TSource, TKey, TAccumulate>(IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TKey, TAccumulate> seedSelector, Func<TAccumulate, TSource, TAccumulate> func, IEqualityComparer<TKey>? keyComparer) where TKey : notnull 149static Dictionary<TKey, TAccumulate> PopulateDictionary(IEnumerator<TSource> enumerator, Func<TSource, TKey> keySelector, Func<TKey, TAccumulate> seedSelector, Func<TAccumulate, TSource, TAccumulate> func, IEqualityComparer<TKey>? keyComparer)
System\Linq\Contains.cs (2)
30public static bool Contains<TSource>(this IEnumerable<TSource> source, TSource value, IEqualityComparer<TSource>? comparer) 49private static bool ContainsIterate<TSource>(IEnumerable<TSource> source, TSource value, IEqualityComparer<TSource>? comparer)
System\Linq\CountBy.cs (4)
18/// <param name="keyComparer">An <see cref="IEqualityComparer{T}"/> to compare keys with.</param> 20public static IEnumerable<KeyValuePair<TKey, int>> CountBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer = null) where TKey : notnull 39private static IEnumerable<KeyValuePair<TKey, int>> CountByIterator<TSource, TKey>(IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer) where TKey : notnull 54private static Dictionary<TKey, int> BuildCountDictionary<TSource, TKey>(IEnumerator<TSource> enumerator, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer) where TKey : notnull
System\Linq\Distinct.cs (7)
13public static IEnumerable<TSource> Distinct<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? comparer) 46/// <param name="comparer">An <see cref="IEqualityComparer{TKey}" /> to compare keys.</param> 51/// <para>The <see cref="DistinctBy{TSource, TKey}(IEnumerable{TSource}, Func{TSource, TKey}, IEqualityComparer{TKey}?)" /> method returns an unordered sequence that contains no duplicate values. If <paramref name="comparer" /> is <see langword="null" />, the default equality comparer, <see cref="EqualityComparer{T}.Default" />, is used to compare values.</para> 53public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) 72private static IEnumerable<TSource> DistinctByIterator<TSource, TKey>(IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) 98private readonly IEqualityComparer<TSource>? _comparer; 102public DistinctIterator(IEnumerable<TSource> source, IEqualityComparer<TSource>? comparer)
System\Linq\Except.cs (5)
25public static IEnumerable<TSource> Except<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource>? comparer) 59/// <param name="comparer">The <see cref="IEqualityComparer{TKey}" /> to compare values.</param> 61public static IEnumerable<TSource> ExceptBy<TSource, TKey>(this IEnumerable<TSource> first, IEnumerable<TKey> second, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) 79private static IEnumerable<TSource> ExceptIterator<TSource>(IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource>? comparer) 92private static IEnumerable<TSource> ExceptByIterator<TSource, TKey>(IEnumerable<TSource> first, IEnumerable<TKey> second, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer)
System\Linq\FullJoin.cs (7)
20/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys, or <see langword="null" /> to use the default equality comparer.</param> 29/// The following code example demonstrates how to use <see cref="FullJoin{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> 96/// In relational database terms, the <see cref="FullJoin{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> method implements a full outer equijoin. 101public static IEnumerable<TResult> FullJoin<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter?, TInner?, TResult> resultSelector, IEqualityComparer<TKey>? comparer = null) 159/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys, or <see langword="null" /> to use the default equality comparer.</param> 174public static IEnumerable<(TOuter? Outer, TInner? Inner)> FullJoin<TOuter, TInner, TKey>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, IEqualityComparer<TKey>? comparer = null) => 177private static IEnumerable<TResult> FullJoinIterator<TOuter, TInner, TKey, TResult>(IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter?, TInner?, TResult> resultSelector, IEqualityComparer<TKey>? comparer)
System\Linq\Grouping.cs (12)
15public static IEnumerable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) 38public static IEnumerable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey>? comparer) 66public static IEnumerable<TResult> GroupBy<TSource, TKey, TResult>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TKey, IEnumerable<TSource>, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 94public static IEnumerable<TResult> GroupBy<TSource, TKey, TElement, TResult>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<TKey, IEnumerable<TElement>, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 129private readonly IEqualityComparer<TKey>? _comparer; 135public GroupByResultIterator(IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<TKey, IEnumerable<TElement>, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 186private readonly IEqualityComparer<TKey>? _comparer; 192public GroupByResultIterator(IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TKey, IEnumerable<TSource>, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 243private readonly IEqualityComparer<TKey>? _comparer; 248public GroupByIterator(IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey>? comparer) 297private readonly IEqualityComparer<TKey>? _comparer; 302public GroupByIterator(IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer)
System\Linq\GroupJoin.cs (5)
19/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to hash and compare keys, or <see langword="null" /> to use <see cref="EqualityComparer{T}.Default" />.</param> 28public static IEnumerable<IGrouping<TOuter, TInner>> GroupJoin<TOuter, TInner, TKey>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, IEqualityComparer<TKey>? comparer = null) 61public static IEnumerable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, IEnumerable<TInner>, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 96private static IEnumerable<IGrouping<TOuter, TInner>> GroupJoinIterator<TOuter, TInner, TKey>(IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, IEqualityComparer<TKey>? comparer) 111private static IEnumerable<TResult> GroupJoinIterator<TOuter, TInner, TKey, TResult>(IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, IEnumerable<TInner>, TResult> resultSelector, IEqualityComparer<TKey>? comparer)
System\Linq\Intersect.cs (5)
12public static IEnumerable<TSource> Intersect<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource>? comparer) 49/// <param name="comparer">An <see cref="IEqualityComparer{TKey}" /> to compare keys.</param> 58public static IEnumerable<TSource> IntersectBy<TSource, TKey>(this IEnumerable<TSource> first, IEnumerable<TKey> second, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) 76private static IEnumerable<TSource> IntersectIterator<TSource>(IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource>? comparer) 89private static IEnumerable<TSource> IntersectByIterator<TSource, TKey>(IEnumerable<TSource> first, IEnumerable<TKey> second, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer)
System\Linq\Join.cs (12)
114/// Correlates the elements of two sequences based on matching keys. A specified <see cref="IEqualityComparer{T}" /> is used to compare keys. 121/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys.</param> 130/// The following code example demonstrates how to use <see cref="Join{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> to perform an inner join of two sequences based on a common key. 200/// <see cref="Join{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> 204/// In relational database terms, the <see cref="Join{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> method implements an inner equijoin. 208/// <see cref="LeftJoin{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> method, 210/// <see cref="RightJoin{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> method, 214public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 249private static IEnumerable<TResult> JoinIterator<TOuter, TInner, TKey, TResult>(IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 283/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys, or <see langword="null" /> to use <see cref="EqualityComparer{T}.Default" />.</param> 297public static IEnumerable<(TOuter Outer, TInner Inner)> Join<TOuter, TInner, TKey>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, IEqualityComparer<TKey>? comparer = null) 327private static IEnumerable<(TOuter Outer, TInner Inner)> JoinIterator<TOuter, TInner, TKey>(IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, IEqualityComparer<TKey>? comparer)
System\Linq\LeftJoin.cs (11)
113/// Correlates the elements of two sequences based on matching keys. A specified <see cref="IEqualityComparer{T}" /> is used to compare keys. 120/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys.</param> 129/// The following code example demonstrates how to use <see cref="LeftJoin{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> to perform aa left outer join of two sequences based on a common key. 200/// <see cref="LeftJoin{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> 204/// In relational database terms, the <see cref="LeftJoin{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> method implements an outer left equijoin. 208/// <see cref="Join{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> method. 212public static IEnumerable<TResult> LeftJoin<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner?, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 247private static IEnumerable<TResult> LeftJoinIterator<TOuter, TInner, TKey, TResult>(IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner?, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 283/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys, or <see langword="null" /> to use <see cref="EqualityComparer{T}.Default" />.</param> 297public static IEnumerable<(TOuter Outer, TInner? Inner)> LeftJoin<TOuter, TInner, TKey>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, IEqualityComparer<TKey>? comparer = null) 327private static IEnumerable<(TOuter Outer, TInner? Inner)> LeftJoinIterator<TOuter, TInner, TKey>(IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, IEqualityComparer<TKey>? comparer)
System\Linq\Lookup.cs (8)
16public static ILookup<TKey, TSource> ToLookup<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) 39public static ILookup<TKey, TElement> ToLookup<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey>? comparer) 78private readonly IEqualityComparer<TKey> _comparer; 84internal static Lookup<TKey, TElement> Create<TSource>(IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey>? comparer) 99internal static Lookup<TKey, TElement> Create(IEnumerable<TElement> source, Func<TElement, TKey> keySelector, IEqualityComparer<TKey>? comparer) 113internal static Lookup<TKey, TElement> CreateForJoin(IEnumerable<TElement> source, Func<TElement, TKey> keySelector, IEqualityComparer<TKey>? comparer) 128private protected Lookup(IEqualityComparer<TKey>? comparer) 282internal CollectionLookup(IEqualityComparer<TKey>? comparer) : base(comparer) { }
System\Linq\RightJoin.cs (11)
112/// Correlates the elements of two sequences based on matching keys. A specified <see cref="IEqualityComparer{T}" /> is used to compare keys. 119/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys.</param> 128/// The following code example demonstrates how to use <see cref="RightJoin{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> to perform aa left outer join of two sequences based on a common key. 198/// <see cref="RightJoin{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> 202/// In relational database terms, the <see cref="RightJoin{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> method implements an outer right equijoin. 206/// <see cref="Join{TOuter, TInner, TKey, TResult}(IEnumerable{TOuter}, IEnumerable{TInner}, Func{TOuter, TKey}, Func{TInner, TKey}, Func{TOuter, TInner, TResult}, IEqualityComparer{TKey})" /> method. 210public static IEnumerable<TResult> RightJoin<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter?, TInner, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 245private static IEnumerable<TResult> RightJoinIterator<TOuter, TInner, TKey, TResult>(IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter?, TInner, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 281/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys, or <see langword="null" /> to use <see cref="EqualityComparer{T}.Default" />.</param> 295public static IEnumerable<(TOuter? Outer, TInner Inner)> RightJoin<TOuter, TInner, TKey>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, IEqualityComparer<TKey>? comparer = null) 325private static IEnumerable<(TOuter? Outer, TInner Inner)> RightJoinIterator<TOuter, TInner, TKey>(IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, IEqualityComparer<TKey>? comparer)
System\Linq\SequenceEqual.cs (1)
13public static bool SequenceEqual<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource>? comparer)
System\Linq\ToCollection.cs (9)
91/// <param name="comparer">An <see cref="IEqualityComparer{TKey}"/> to compare keys.</param> 98public static Dictionary<TKey, TValue> ToDictionary<TKey, TValue>(this IEnumerable<KeyValuePair<TKey, TValue>> source, IEqualityComparer<TKey>? comparer) where TKey : notnull 126/// <param name="comparer">An <see cref="IEqualityComparer{TKey}"/> to compare keys.</param> 133public static Dictionary<TKey, TValue> ToDictionary<TKey, TValue>(this IEnumerable<(TKey Key, TValue Value)> source, IEqualityComparer<TKey>? comparer) where TKey : notnull => 139public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) where TKey : notnull 179private static Dictionary<TKey, TSource> SpanToDictionary<TSource, TKey>(ReadOnlySpan<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) where TKey : notnull 192public static Dictionary<TKey, TElement> ToDictionary<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey>? comparer) where TKey : notnull 237private static Dictionary<TKey, TElement> SpanToDictionary<TSource, TKey, TElement>(ReadOnlySpan<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey>? comparer) where TKey : notnull 249public static HashSet<TSource> ToHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? comparer)
System\Linq\Union.cs (8)
14public static IEnumerable<TSource> Union<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource>? comparer) 50/// <param name="comparer">The <see cref="IEqualityComparer{T}" /> to compare values.</param> 58public static IEnumerable<TSource> UnionBy<TSource, TKey>(this IEnumerable<TSource> first, IEnumerable<TSource> second, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) 76private static IEnumerable<TSource> UnionByIterator<TSource, TKey>(IEnumerable<TSource> first, IEnumerable<TSource> second, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) 103internal readonly IEqualityComparer<TSource>? _comparer; 107protected UnionIterator(IEqualityComparer<TSource>? comparer) 217public UnionIterator2(IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource>? comparer) 255public UnionIteratorN(SingleLinkedNode<IEnumerable<TSource>> sources, int headIndex, IEqualityComparer<TSource>? comparer)
System\Linq\Utilities.cs (2)
20public static bool AreEqualityComparersEqual<TSource>(IEqualityComparer<TSource>? left, IEqualityComparer<TSource>? right)
System.Linq.AsyncEnumerable (181)
System\Linq\AggregateBy.cs (12)
24/// <param name="keyComparer">An <see cref="IEqualityComparer{T}"/> to compare keys with.</param> 38IEqualityComparer<TKey>? keyComparer = null) 54IEqualityComparer<TKey>? keyComparer, 95/// <param name="keyComparer">An <see cref="IEqualityComparer{T}"/> to compare keys with.</param> 109IEqualityComparer<TKey>? keyComparer = null) 125IEqualityComparer<TKey>? keyComparer, 161/// <param name="keyComparer">An <see cref="IEqualityComparer{T}"/> to compare keys with.</param> 176IEqualityComparer<TKey>? keyComparer = null) where TKey : notnull 192IEqualityComparer<TKey>? keyComparer, 233/// <param name="keyComparer">An <see cref="IEqualityComparer{T}"/> to compare keys with.</param> 248IEqualityComparer<TKey>? keyComparer = null) where TKey : notnull 264IEqualityComparer<TKey>? keyComparer,
System\Linq\ContainsAsync.cs (2)
24IEqualityComparer<TSource>? comparer = null, 34IEqualityComparer<TSource> comparer)
System\Linq\CountBy.cs (6)
19/// <param name="keyComparer">An <see cref="IEqualityComparer{T}"/> to compare keys with.</param> 26IEqualityComparer<TKey>? keyComparer = null) where TKey : notnull 36IAsyncEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? keyComparer, [EnumeratorCancellation] CancellationToken cancellationToken) 70/// <param name="keyComparer">An <see cref="IEqualityComparer{T}"/> to compare keys with.</param> 77IEqualityComparer<TKey>? keyComparer = null) where TKey : notnull 87IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<TKey>> keySelector, IEqualityComparer<TKey>? keyComparer, [EnumeratorCancellation] CancellationToken cancellationToken)
System\Linq\Distinct.cs (3)
15/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare values.</param> 20IEqualityComparer<TSource>? comparer = null) 30IEqualityComparer<TSource>? comparer,
System\Linq\DistinctBy.cs (8)
18/// <param name="comparer">An <see cref="IEqualityComparer{TKey}" /> to compare keys.</param> 23/// <para>The <see cref="DistinctBy{TSource, TKey}(IAsyncEnumerable{TSource}, Func{TSource, TKey}, IEqualityComparer{TKey}?)" /> method returns an unordered sequence that contains no duplicate values. If <paramref name="comparer" /> is <see langword="null" />, the default equality comparer, <see cref="EqualityComparer{T}.Default" />, is used to compare values.</para> 30IEqualityComparer<TKey>? comparer = null) 42IEqualityComparer<TKey>? comparer, 68/// <param name="comparer">An <see cref="IEqualityComparer{TKey}" /> to compare keys.</param> 73/// <para>The <see cref="DistinctBy{TSource, TKey}(IAsyncEnumerable{TSource}, Func{TSource, CancellationToken, ValueTask{TKey}}, IEqualityComparer{TKey}?)" /> method returns an unordered sequence that contains no duplicate values. If <paramref name="comparer" /> is <see langword="null" />, the default equality comparer, <see cref="EqualityComparer{T}.Default" />, is used to compare values.</para> 80IEqualityComparer<TKey>? comparer = null) 92IEqualityComparer<TKey>? comparer,
System\Linq\Except.cs (3)
17/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare values.</param> 24IEqualityComparer<TSource>? comparer = null) 36IEqualityComparer<TSource>? comparer,
System\Linq\ExceptBy.cs (6)
21/// <param name="comparer">The <see cref="IEqualityComparer{TKey}" /> to compare values.</param> 30IEqualityComparer<TKey>? comparer = null) 44IEqualityComparer<TKey>? comparer, 81/// <param name="comparer">The <see cref="IEqualityComparer{TKey}" /> to compare values.</param> 90IEqualityComparer<TKey>? comparer = null) 104IEqualityComparer<TKey>? comparer,
System\Linq\FullJoin.cs (12)
19/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 36IEqualityComparer<TKey>? comparer = null) 57IEqualityComparer<TKey>? comparer, 138/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 155IEqualityComparer<TKey>? comparer = null) 177IEqualityComparer<TKey>? comparer, 257/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 271IEqualityComparer<TKey>? comparer = null) 281/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 295IEqualityComparer<TKey>? comparer = null) 303IEqualityComparer<TKey>? comparer, 318IEqualityComparer<TKey>? comparer,
System\Linq\GroupBy.cs (24)
20/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 30IEqualityComparer<TKey>? comparer = null) 42IEqualityComparer<TKey>? comparer, 57/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 67IEqualityComparer<TKey>? comparer = null) 79IEqualityComparer<TKey>? comparer, 100/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 112IEqualityComparer<TKey>? comparer = null) 126IEqualityComparer<TKey>? comparer, 147/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 159IEqualityComparer<TKey>? comparer = null) 173IEqualityComparer<TKey>? comparer, 193/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 205IEqualityComparer<TKey>? comparer = null) 219IEqualityComparer<TKey>? comparer, 242/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 254IEqualityComparer<TKey>? comparer = null) 268IEqualityComparer<TKey>? comparer, 295/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 306IEqualityComparer<TKey>? comparer = null) 322IEqualityComparer<TKey>? comparer, 349/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 360IEqualityComparer<TKey>? comparer = null) 376IEqualityComparer<TKey>? comparer,
System\Linq\GroupJoin.cs (12)
22/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to hash and compare keys, or <see langword="null" /> to use <see cref="EqualityComparer{T}.Default" />.</param> 36IEqualityComparer<TKey>? comparer = null) 52IEqualityComparer<TKey>? comparer, 78/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to hash and compare keys, or <see langword="null" /> to use <see cref="EqualityComparer{T}.Default" />.</param> 92IEqualityComparer<TKey>? comparer = null) 108IEqualityComparer<TKey>? comparer, 141/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 157IEqualityComparer<TKey>? comparer = null) 175IEqualityComparer<TKey>? comparer, 206/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 222IEqualityComparer<TKey>? comparer = null) 240IEqualityComparer<TKey>? comparer,
System\Linq\Intersect.cs (3)
17/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare values.</param> 24IEqualityComparer<TSource>? comparer = null) 36IEqualityComparer<TSource>? comparer,
System\Linq\IntersectBy.cs (6)
19/// <param name="comparer">An <see cref="IEqualityComparer{TKey}" /> to compare keys.</param> 35IEqualityComparer<TKey>? comparer = null) 49IEqualityComparer<TKey>? comparer, 84/// <param name="comparer">An <see cref="IEqualityComparer{TKey}" /> to compare keys.</param> 100IEqualityComparer<TKey>? comparer = null) 114IEqualityComparer<TKey>? comparer,
System\Linq\Join.cs (12)
23/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 39IEqualityComparer<TKey>? comparer = null) 56IEqualityComparer<TKey>? comparer, 96/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 112IEqualityComparer<TKey>? comparer = null) 130IEqualityComparer<TKey>? comparer, 168/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 182IEqualityComparer<TKey>? comparer = null) 197IEqualityComparer<TKey>? comparer, 235/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 249IEqualityComparer<TKey>? comparer = null) 265IEqualityComparer<TKey>? comparer,
System\Linq\LeftJoin.cs (12)
19/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 36IEqualityComparer<TKey>? comparer = null) 53IEqualityComparer<TKey>? comparer, 90/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 107IEqualityComparer<TKey>? comparer = null) 125IEqualityComparer<TKey>? comparer, 161/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 175IEqualityComparer<TKey>? comparer = null) 190IEqualityComparer<TKey>? comparer, 226/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 240IEqualityComparer<TKey>? comparer = null) 256IEqualityComparer<TKey>? comparer,
System\Linq\RightJoin.cs (12)
19/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 36IEqualityComparer<TKey>? comparer = null) 54IEqualityComparer<TKey>? comparer, 91/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 108IEqualityComparer<TKey>? comparer = null) 126IEqualityComparer<TKey>? comparer, 162/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 176IEqualityComparer<TKey>? comparer = null) 192IEqualityComparer<TKey>? comparer, 228/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to hash and compare keys.</param> 242IEqualityComparer<TKey>? comparer = null) 258IEqualityComparer<TKey>? comparer,
System\Linq\SequenceEqualAsync.cs (3)
16/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to use to compare elements.</param> 25IEqualityComparer<TSource>? comparer = null, 36IEqualityComparer<TSource> comparer,
System\Linq\ToDictionaryAsync.cs (17)
19/// <param name="comparer">An <see cref="IEqualityComparer{TKey}"/> to compare keys.</param> 26IEqualityComparer<TKey>? comparer = null, 35IEqualityComparer<TKey>? comparer) 53/// <param name="comparer">An <see cref="IEqualityComparer{TKey}"/> to compare keys.</param> 59this IAsyncEnumerable<(TKey Key, TValue Value)> source, IEqualityComparer<TKey>? comparer = null, CancellationToken cancellationToken = default) where TKey : notnull => 70/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 79IEqualityComparer<TKey>? comparer = null, 90IEqualityComparer<TKey>? comparer) 109/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 118IEqualityComparer<TKey>? comparer = null, 129IEqualityComparer<TKey>? comparer, 151/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 162IEqualityComparer<TKey>? comparer = null, 175IEqualityComparer<TKey>? comparer) 197/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 208IEqualityComparer<TKey>? comparer = null, 221IEqualityComparer<TKey>? comparer,
System\Linq\ToHashSetAsync.cs (3)
16/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 22IEqualityComparer<TSource>? comparer = null, 31IEqualityComparer<TSource>? comparer)
System\Linq\ToLookupAsync.cs (16)
23/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 31IEqualityComparer<TKey>? comparer = null, 42IEqualityComparer<TKey>? comparer) 71/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 79IEqualityComparer<TKey>? comparer = null, 90IEqualityComparer<TKey>? comparer, 122/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 131IEqualityComparer<TKey>? comparer = null, 144IEqualityComparer<TKey>? comparer) 175/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 184IEqualityComparer<TKey>? comparer = null, 197IEqualityComparer<TKey>? comparer, 269private readonly IEqualityComparer<TKey> _comparer; 275internal AsyncLookup(IEqualityComparer<TKey>? comparer) 288IEqualityComparer<TKey>? comparer, 310IEqualityComparer<TKey>? comparer,
System\Linq\Union.cs (3)
17/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to compare keys.</param> 24IEqualityComparer<TSource>? comparer = null) 36IEqualityComparer<TSource>? comparer,
System\Linq\UnionBy.cs (6)
19/// <param name="comparer">The <see cref="IEqualityComparer{T}" /> to compare values.</param> 27IEqualityComparer<TKey>? comparer = null) 41IEqualityComparer<TKey>? comparer, 70/// <param name="comparer">The <see cref="IEqualityComparer{T}" /> to compare values.</param> 78IEqualityComparer<TKey>? comparer = null) 92IEqualityComparer<TKey>? comparer,
System.Linq.Parallel (87)
System\Linq\Parallel\Partitioning\HashRepartitionStream.cs (4)
36private readonly IEqualityComparer<THashKey>? _keyComparer; // The optional key comparison routine. 37private readonly IEqualityComparer<TInputOutput>? _elementComparer; // The optional element comparison routine. 45int partitionsCount, IComparer<TOrderKey> orderKeyComparer, IEqualityComparer<THashKey>? hashKeyComparer, 46IEqualityComparer<TInputOutput>? elementComparer)
System\Linq\Parallel\Partitioning\OrderedHashRepartitionStream.cs (2)
19IEqualityComparer<THashKey>? hashKeyComparer, IEqualityComparer<TInputOutput>? elementComparer, CancellationToken cancellationToken)
System\Linq\Parallel\Partitioning\UnorderedHashRepartitionStream.cs (2)
23Func<TInputOutput, THashKey>? keySelector, IEqualityComparer<THashKey>? keyComparer, IEqualityComparer<TInputOutput>? elementComparer,
System\Linq\Parallel\QueryOperators\Binary\ExceptQueryOperator.cs (6)
25private readonly IEqualityComparer<TInputOutput>? _comparer; // An equality comparer. 31internal ExceptQueryOperator(ParallelQuery<TInputOutput> left, ParallelQuery<TInputOutput> right, IEqualityComparer<TInputOutput>? comparer) 141private readonly IEqualityComparer<TInputOutput>? _comparer; // A comparer used for equality checks/hash-coding. 153IEqualityComparer<TInputOutput>? comparer, 231private readonly IEqualityComparer<TInputOutput>? _comparer; // A comparer used for equality checks/hash-coding. 245IEqualityComparer<TInputOutput>? comparer, IComparer<TLeftKey> leftKeyComparer,
System\Linq\Parallel\QueryOperators\Binary\GroupJoinQueryOperator.cs (6)
31private readonly IEqualityComparer<TKey>? _keyComparer; // An optional key comparison object. 41IEqualityComparer<TKey>? keyComparer) 220private readonly IEqualityComparer<THashKey>? _keyComparer; // An optional key comparison object. 222internal GroupJoinHashLookupBuilder(QueryOperatorEnumerator<Pair<TElement, THashKey>, TOrderKey> dataSource, IEqualityComparer<THashKey>? keyComparer) 306private readonly IEqualityComparer<THashKey>? _keyComparer; // An optional key comparison object. 311IEqualityComparer<THashKey>? keyComparer,
System\Linq\Parallel\QueryOperators\Binary\IntersectQueryOperator.cs (6)
24private readonly IEqualityComparer<TInputOutput>? _comparer; // An equality comparer. 30internal IntersectQueryOperator(ParallelQuery<TInputOutput> left, ParallelQuery<TInputOutput> right, IEqualityComparer<TInputOutput>? comparer) 130private readonly IEqualityComparer<TInputOutput>? _comparer; // Comparer to use for equality/hash-coding. 142IEqualityComparer<TInputOutput>? comparer, CancellationToken cancellationToken) 232private readonly IEqualityComparer<Wrapper<TInputOutput>> _comparer; // Comparer to use for equality/hash-coding. 244IEqualityComparer<TInputOutput>? comparer, IComparer<TLeftKey> leftKeyComparer,
System\Linq\Parallel\QueryOperators\Binary\JoinQueryOperator.cs (4)
47private readonly IEqualityComparer<TKey>? _keyComparer; // An optional key comparison object. 57IEqualityComparer<TKey>? keyComparer) 197private readonly IEqualityComparer<THashKey>? _keyComparer; // An optional key comparison object. 199internal JoinHashLookupBuilder(QueryOperatorEnumerator<Pair<TElement, THashKey>, TOrderKey> dataSource, IEqualityComparer<THashKey>? keyComparer)
System\Linq\Parallel\QueryOperators\Binary\UnionQueryOperator.cs (7)
24private readonly IEqualityComparer<TInputOutput>? _comparer; // An equality comparer. 30internal UnionQueryOperator(ParallelQuery<TInputOutput> left, ParallelQuery<TInputOutput> right, IEqualityComparer<TInputOutput>? comparer) 190private readonly IEqualityComparer<TInputOutput>? _comparer; 199IEqualityComparer<TInputOutput>? comparer, 302private readonly IEqualityComparer<TInputOutput>? _comparer; // Comparer for the elements. 312bool leftOrdered, bool rightOrdered, IEqualityComparer<TInputOutput>? comparer, IComparer<ConcatKey<TLeftKey, TRightKey>> keyComparer, 340IEqualityComparer<Wrapper<TInputOutput>> wrapperComparer = new WrapperEqualityComparer<TInputOutput>(_comparer);
System\Linq\Parallel\QueryOperators\Unary\ContainsSearchOperator.cs (4)
26private readonly IEqualityComparer<TInput> _comparer; // The comparer to use for equality tests. 37internal ContainsSearchOperator(IEnumerable<TInput> child, TInput searchValue, IEqualityComparer<TInput>? comparer) 131private readonly IEqualityComparer<TInput> _comparer; // The comparer to use for equality tests. 141IEqualityComparer<TInput> comparer, int partitionIndex, Shared<bool> resultFoundFlag,
System\Linq\Parallel\QueryOperators\Unary\DistinctQueryOperator.cs (4)
25private readonly IEqualityComparer<TInputOutput>? _comparer; // An (optional) equality comparer. 31internal DistinctQueryOperator(IEnumerable<TInputOutput> source, IEqualityComparer<TInputOutput>? comparer) 131QueryOperatorEnumerator<Pair<TInputOutput, NoKeyMemoizationRequired>, TKey> source, IEqualityComparer<TInputOutput>? comparer, 207IEqualityComparer<TInputOutput>? comparer, IComparer<TKey> keyComparer,
System\Linq\Parallel\QueryOperators\Unary\GroupByQueryOperator.cs (10)
34private readonly IEqualityComparer<TGroupKey>? _keyComparer; // An optional key comparison object. 53IEqualityComparer<TGroupKey>? keyComparer) 225protected readonly IEqualityComparer<TGroupKey>? _keyComparer; // A key comparer. 241IEqualityComparer<TGroupKey>? keyComparer, CancellationToken cancellationToken) 311IEqualityComparer<TGroupKey>? keyComparer, CancellationToken cancellationToken) 371IEqualityComparer<TGroupKey>? keyComparer, Func<TSource, TElement> elementSelector, CancellationToken cancellationToken) : 427protected readonly IEqualityComparer<TGroupKey>? _keyComparer; // The key comparison routine. 443Func<TSource, TGroupKey> keySelector, IEqualityComparer<TGroupKey>? keyComparer, IComparer<TOrderKey> orderComparer, 539Func<TSource, TGroupKey> keySelector, IEqualityComparer<TGroupKey>? keyComparer, IComparer<TOrderKey> orderComparer, 612Func<TSource, TGroupKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TGroupKey>? keyComparer, IComparer<TOrderKey> orderComparer,
System\Linq\Parallel\Utils\ExchangeUtilities.cs (4)
90PartitionedStream<TElement, TIgnoreKey> source, Func<TElement, THashKey>? keySelector, IEqualityComparer<THashKey>? keyComparer, 91IEqualityComparer<TElement>? elementComparer, CancellationToken cancellationToken) 98PartitionedStream<TElement, TOrderKey> source, Func<TElement, THashKey>? keySelector, IEqualityComparer<THashKey>? keyComparer, 99IEqualityComparer<TElement>? elementComparer, CancellationToken cancellationToken)
System\Linq\Parallel\Utils\HashLookup.cs (2)
27private readonly IEqualityComparer<TKey>? comparer; 35internal HashLookup(IEqualityComparer<TKey>? comparer)
System\Linq\Parallel\Utils\Lookup.cs (2)
40private readonly IEqualityComparer<TKey> _comparer; 43internal Lookup(IEqualityComparer<TKey> comparer)
System\Linq\Parallel\Utils\WrapperEqualityComparer.cs (2)
22private readonly IEqualityComparer<T> _comparer; 24internal WrapperEqualityComparer(IEqualityComparer<T>? comparer) =>
System\Linq\ParallelEnumerable.cs (22)
745Func<TOuter, TInner, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 782Func<TOuter, TInner, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 879Func<TOuter, IEnumerable<TInner>, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 917Func<TOuter, IEnumerable<TInner>, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 1316this ParallelQuery<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) 1369this ParallelQuery<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey>? comparer) 1436this ParallelQuery<TSource> source, Func<TSource, TKey> keySelector, Func<TKey, IEnumerable<TSource>, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 1497this ParallelQuery<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<TKey, IEnumerable<TElement>, TResult> resultSelector, IEqualityComparer<TKey>? comparer) 4072public static bool Contains<TSource>(this ParallelQuery<TSource> source, TSource value, IEqualityComparer<TSource>? comparer) 4371public static bool SequenceEqual<TSource>(this ParallelQuery<TSource> first, ParallelQuery<TSource> second, IEqualityComparer<TSource>? comparer) 4452public static bool SequenceEqual<TSource>(this ParallelQuery<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource>? comparer) 4489this ParallelQuery<TSource> source, IEqualityComparer<TSource>? comparer) 4550this ParallelQuery<TSource> first, ParallelQuery<TSource> second, IEqualityComparer<TSource>? comparer) 4576this ParallelQuery<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource>? comparer) 4645this ParallelQuery<TSource> first, ParallelQuery<TSource> second, IEqualityComparer<TSource>? comparer) 4671this ParallelQuery<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource>? comparer) 4741this ParallelQuery<TSource> first, ParallelQuery<TSource> second, IEqualityComparer<TSource>? comparer) 4767this ParallelQuery<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource>? comparer) 4959this ParallelQuery<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) where TKey : notnull 5056this ParallelQuery<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey>? comparer) where TKey : notnull 5138this ParallelQuery<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey>? comparer) where TKey : notnull 5224this ParallelQuery<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey>? comparer) where TKey : notnull
System.Linq.Queryable (117)
System\Linq\Queryable.cs (117)
297/// Correlates the elements of two sequences based on matching keys. A specified <see cref="IEqualityComparer{T}" /> is used to compare keys. 304/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys.</param> 313/// The following code example demonstrates how to use <see cref="Join{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> to perform an inner join of two sequences based on a common key. 378/// The <see cref="Join{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> method 380/// <see cref="Join{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> 386/// <see cref="Join{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> 396public static IQueryable<TResult> Join<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter, TInner, TResult>> resultSelector, IEqualityComparer<TKey>? comparer) 407new Func<IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, Expression<Func<TOuter, TInner, TResult>>, IEqualityComparer<TKey>, IQueryable<TResult>>(Join).Method, 408outer.Expression, GetSourceExpression(inner), Expression.Quote(outerKeySelector), Expression.Quote(innerKeySelector), Expression.Quote(resultSelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 419/// <param name="comparer">An <see cref="IEqualityComparer{T}"/> to hash and compare keys, or <see langword="null" /> to use <see cref="EqualityComparer{T}.Default" />.</param> 429public static IQueryable<IGrouping<TOuter, TInner>> GroupJoin<TOuter, TInner, TKey>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, IEqualityComparer<TKey>? comparer = null) 439new Func<IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, IEqualityComparer<TKey>, IQueryable<IGrouping<TOuter, TInner>>>(GroupJoin).Method, 440outer.Expression, GetSourceExpression(inner), Expression.Quote(outerKeySelector), Expression.Quote(innerKeySelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 450/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys, or <see langword="null" /> to use <see cref="EqualityComparer{T}.Default" />.</param> 457public static IQueryable<(TOuter Outer, TInner Inner)> Join<TOuter, TInner, TKey>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, IEqualityComparer<TKey>? comparer = null) 467new Func<IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, IEqualityComparer<TKey>, IQueryable<(TOuter Outer, TInner Inner)>>(Join).Method, 468outer.Expression, GetSourceExpression(inner), Expression.Quote(outerKeySelector), Expression.Quote(innerKeySelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 488public static IQueryable<TResult> GroupJoin<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter, IEnumerable<TInner>, TResult>> resultSelector, IEqualityComparer<TKey>? comparer) 499new Func<IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, Expression<Func<TOuter, IEnumerable<TInner>, TResult>>, IEqualityComparer<TKey>, IQueryable<TResult>>(GroupJoin).Method, 500outer.Expression, GetSourceExpression(inner), Expression.Quote(outerKeySelector), Expression.Quote(innerKeySelector), Expression.Quote(resultSelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 519/// The following code example demonstrates how to use <see cref="LeftJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> to perform an inner join of two sequences based on a common key. 618/// Correlates the elements of two sequences based on matching keys. A specified <see cref="IEqualityComparer{T}" /> is used to compare keys. 625/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys.</param> 634/// The following code example demonstrates how to use <see cref="LeftJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> to perform an inner join of two sequences based on a common key. 699/// The <see cref="LeftJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> method 701/// <see cref="LeftJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> 707/// <see cref="LeftJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> 717public static IQueryable<TResult> LeftJoin<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter, TInner?, TResult>> resultSelector, IEqualityComparer<TKey>? comparer) 728new Func<IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, Expression<Func<TOuter, TInner?, TResult>>, IEqualityComparer<TKey>, IQueryable<TResult>>(LeftJoin).Method, 729outer.Expression, GetSourceExpression(inner), Expression.Quote(outerKeySelector), Expression.Quote(innerKeySelector), Expression.Quote(resultSelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 739/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys, or <see langword="null" /> to use <see cref="EqualityComparer{T}.Default" />.</param> 746public static IQueryable<(TOuter Outer, TInner? Inner)> LeftJoin<TOuter, TInner, TKey>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, IEqualityComparer<TKey>? comparer = null) 756new Func<IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, IEqualityComparer<TKey>, IQueryable<(TOuter Outer, TInner? Inner)>>(LeftJoin).Method, 757outer.Expression, GetSourceExpression(inner), Expression.Quote(outerKeySelector), Expression.Quote(innerKeySelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 974/// The following code example demonstrates how to use <see cref="RightJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> to perform an inner join of two sequences based on a common key. 1072/// Correlates the elements of two sequences based on matching keys. A specified <see cref="IEqualityComparer{T}" /> is used to compare keys. 1079/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys.</param> 1088/// The following code example demonstrates how to use <see cref="RightJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> to perform an inner join of two sequences based on a common key. 1152/// The <see cref="RightJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> method 1154/// <see cref="RightJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> 1160/// <see cref="RightJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> 1170public static IQueryable<TResult> RightJoin<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter?, TInner, TResult>> resultSelector, IEqualityComparer<TKey>? comparer) 1181new Func<IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, Expression<Func<TOuter?, TInner, TResult>>, IEqualityComparer<TKey>, IQueryable<TResult>>(RightJoin).Method, 1182outer.Expression, GetSourceExpression(inner), Expression.Quote(outerKeySelector), Expression.Quote(innerKeySelector), Expression.Quote(resultSelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 1192/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys, or <see langword="null" /> to use <see cref="EqualityComparer{T}.Default" />.</param> 1199public static IQueryable<(TOuter? Outer, TInner Inner)> RightJoin<TOuter, TInner, TKey>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, IEqualityComparer<TKey>? comparer = null) 1209new Func<IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, IEqualityComparer<TKey>, IQueryable<(TOuter? Outer, TInner Inner)>>(RightJoin).Method, 1210outer.Expression, GetSourceExpression(inner), Expression.Quote(outerKeySelector), Expression.Quote(innerKeySelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 1223/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys, or <see langword="null" /> to use the default equality comparer.</param> 1237/// The <see cref="FullJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> method 1239/// <see cref="FullJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> 1245/// <see cref="FullJoin{TOuter, TInner, TKey, TResult}(IQueryable{TOuter}, IEnumerable{TInner}, Expression{Func{TOuter, TKey}}, Expression{Func{TInner, TKey}}, Expression{Func{TOuter, TInner, TResult}}, IEqualityComparer{TKey})" /> 1251public static IQueryable<TResult> FullJoin<TOuter, TInner, TKey, TResult>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, Expression<Func<TOuter?, TInner?, TResult>> resultSelector, IEqualityComparer<TKey>? comparer = null) 1262new Func<IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, Expression<Func<TOuter?, TInner?, TResult>>, IEqualityComparer<TKey>, IQueryable<TResult>>(FullJoin).Method, 1263outer.Expression, GetSourceExpression(inner), Expression.Quote(outerKeySelector), Expression.Quote(innerKeySelector), Expression.Quote(resultSelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 1275/// <param name="comparer">An <see cref="IEqualityComparer{T}" /> to hash and compare keys, or <see langword="null" /> to use the default equality comparer.</param> 1282public static IQueryable<(TOuter? Outer, TInner? Inner)> FullJoin<TOuter, TInner, TKey>(this IQueryable<TOuter> outer, IEnumerable<TInner> inner, Expression<Func<TOuter, TKey>> outerKeySelector, Expression<Func<TInner, TKey>> innerKeySelector, IEqualityComparer<TKey>? comparer = null) 1292new Func<IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, IEqualityComparer<TKey>, IQueryable<(TOuter? Outer, TInner? Inner)>>(FullJoin).Method, 1293outer.Expression, GetSourceExpression(inner), Expression.Quote(outerKeySelector), Expression.Quote(innerKeySelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 1470public static IQueryable<IGrouping<TKey, TSource>> GroupBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer) 1478new Func<IQueryable<TSource>, Expression<Func<TSource, TKey>>, IEqualityComparer<TKey>, IQueryable<IGrouping<TKey, TSource>>>(GroupBy).Method, 1479source.Expression, Expression.Quote(keySelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 1483public static IQueryable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector, IEqualityComparer<TKey>? comparer) 1492new Func<IQueryable<TSource>, Expression<Func<TSource, TKey>>, Expression<Func<TSource, TElement>>, IEqualityComparer<TKey>, IQueryable<IGrouping<TKey, TElement>>>(GroupBy).Method, 1493source.Expression, Expression.Quote(keySelector), Expression.Quote(elementSelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 1526public static IQueryable<TResult> GroupBy<TSource, TKey, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TKey, IEnumerable<TSource>, TResult>> resultSelector, IEqualityComparer<TKey>? comparer) 1535new Func<IQueryable<TSource>, Expression<Func<TSource, TKey>>, Expression<Func<TKey, IEnumerable<TSource>, TResult>>, IEqualityComparer<TKey>, IQueryable<TResult>>(GroupBy).Method, 1536source.Expression, Expression.Quote(keySelector), Expression.Quote(resultSelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 1540public static IQueryable<TResult> GroupBy<TSource, TKey, TElement, TResult>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TSource, TElement>> elementSelector, Expression<Func<TKey, IEnumerable<TElement>, TResult>> resultSelector, IEqualityComparer<TKey>? comparer) 1550new Func<IQueryable<TSource>, Expression<Func<TSource, TKey>>, Expression<Func<TSource, TElement>>, Expression<Func<TKey, IEnumerable<TElement>, TResult>>, IEqualityComparer<TKey>, IQueryable<TResult>>(GroupBy).Method, 1551source.Expression, Expression.Quote(keySelector), Expression.Quote(elementSelector), Expression.Quote(resultSelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 1567public static IQueryable<TSource> Distinct<TSource>(this IQueryable<TSource> source, IEqualityComparer<TSource>? comparer) 1574new Func<IQueryable<TSource>, IEqualityComparer<TSource>, IQueryable<TSource>>(Distinct).Method, 1575source.Expression, Expression.Constant(comparer, typeof(IEqualityComparer<TSource>)))); 1603/// <param name="comparer">An <see cref="IEqualityComparer{TKey}" /> to compare keys.</param> 1607public static IQueryable<TSource> DistinctBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer) 1615new Func<IQueryable<TSource>, Expression<Func<TSource, TKey>>, IEqualityComparer<TKey>, IQueryable<TSource>>(DistinctBy).Method, 1616source.Expression, Expression.Quote(keySelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 1720public static IQueryable<TSource> Union<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource>? comparer) 1728new Func<IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>, IQueryable<TSource>>(Union).Method, 1731Expression.Constant(comparer, typeof(IEqualityComparer<TSource>)))); 1762/// <param name="comparer">The <see cref="IEqualityComparer{T}" /> to compare values.</param> 1766public static IQueryable<TSource> UnionBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer) 1775new Func<IQueryable<TSource>, IEnumerable<TSource>, Expression<Func<TSource, TKey>>, IEqualityComparer<TKey>, IQueryable<TSource>>(UnionBy).Method, 1779Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 1813public static IQueryable<TSource> Intersect<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource>? comparer) 1821new Func<IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>, IQueryable<TSource>>(Intersect).Method, 1824Expression.Constant(comparer, typeof(IEqualityComparer<TSource>)))); 1857/// <param name="comparer">An <see cref="IEqualityComparer{TKey}" /> to compare keys.</param> 1861public static IQueryable<TSource> IntersectBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TKey> source2, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer) 1870new Func<IQueryable<TSource>, IEnumerable<TKey>, Expression<Func<TSource, TKey>>, IEqualityComparer<TKey>, IQueryable<TSource>>(IntersectBy).Method, 1874Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 1891public static IQueryable<TSource> Except<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource>? comparer) 1899new Func<IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>, IQueryable<TSource>>(Except).Method, 1902Expression.Constant(comparer, typeof(IEqualityComparer<TSource>)))); 1938/// <param name="comparer">An <see cref="IEqualityComparer{TKey}" /> to compare keys.</param> 1941public static IQueryable<TSource> ExceptBy<TSource, TKey>(this IQueryable<TSource> source1, IEnumerable<TKey> source2, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer) 1950new Func<IQueryable<TSource>, IEnumerable<TKey>, Expression<Func<TSource, TKey>>, IEqualityComparer<TKey>, IQueryable<TSource>>(ExceptBy).Method, 1954Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 2328public static bool Contains<TSource>(this IQueryable<TSource> source, TSource item, IEqualityComparer<TSource>? comparer) 2335new Func<IQueryable<TSource>, TSource, IEqualityComparer<TSource>, bool>(Contains).Method, 2336source.Expression, Expression.Constant(item, typeof(TSource)), Expression.Constant(comparer, typeof(IEqualityComparer<TSource>)))); 2365public static bool SequenceEqual<TSource>(this IQueryable<TSource> source1, IEnumerable<TSource> source2, IEqualityComparer<TSource>? comparer) 2373new Func<IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>, bool>(SequenceEqual).Method, 2376Expression.Constant(comparer, typeof(IEqualityComparer<TSource>)))); 2465/// <param name="comparer">An <see cref="IEqualityComparer{TKey}" /> to compare keys.</param> 2469public static IQueryable<KeyValuePair<TKey, int>> CountBy<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, IEqualityComparer<TKey>? comparer = null) where TKey : notnull 2477new Func<IQueryable<TSource>, Expression<Func<TSource, TKey>>, IEqualityComparer<TKey>, IQueryable<KeyValuePair<TKey, int>>>(CountBy).Method, 2478source.Expression, Expression.Quote(keySelector), Expression.Constant(comparer, typeof(IEqualityComparer<TKey>)))); 3291/// <param name="keyComparer">An <see cref="IEqualityComparer{T}"/> to compare keys with.</param> 3298public static IQueryable<KeyValuePair<TKey, TAccumulate>> AggregateBy<TSource, TKey, TAccumulate>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, TAccumulate seed, Expression<Func<TAccumulate, TSource, TAccumulate>> func, IEqualityComparer<TKey>? keyComparer = null) where TKey : notnull 3307new Func<IQueryable<TSource>, Expression<Func<TSource, TKey>>, TAccumulate, Expression<Func<TAccumulate, TSource, TAccumulate>>, IEqualityComparer<TKey>, IQueryable<KeyValuePair<TKey, TAccumulate>>>(AggregateBy).Method, 3308source.Expression, Expression.Quote(keySelector), Expression.Constant(seed), Expression.Quote(func), Expression.Constant(keyComparer, typeof(IEqualityComparer<TKey>)))); 3321/// <param name="keyComparer">An <see cref="IEqualityComparer{T}"/> to compare keys with.</param> 3328public static IQueryable<KeyValuePair<TKey, TAccumulate>> AggregateBy<TSource, TKey, TAccumulate>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector, Expression<Func<TKey, TAccumulate>> seedSelector, Expression<Func<TAccumulate, TSource, TAccumulate>> func, IEqualityComparer<TKey>? keyComparer = null) where TKey : notnull 3338new Func<IQueryable<TSource>, Expression<Func<TSource, TKey>>, Expression<Func<TKey, TAccumulate>>, Expression<Func<TAccumulate, TSource, TAccumulate>>, IEqualityComparer<TKey>, IQueryable<KeyValuePair<TKey, TAccumulate>>>(AggregateBy).Method, 3339source.Expression, Expression.Quote(keySelector), Expression.Quote(seedSelector), Expression.Quote(func), Expression.Constant(keyComparer, typeof(IEqualityComparer<TKey>))));
System.Net.Http (1)
System\Net\Http\Headers\HeaderUtilities.cs (1)
180internal static bool AreEqualCollections<T>(ObjectCollection<T>? x, ObjectCollection<T>? y, IEqualityComparer<T>? comparer) where T : class
System.ObjectModel (4)
System\Collections\ObjectModel\KeyedCollection.cs (4)
18private readonly IEqualityComparer<TKey> comparer; // Do not rename (binary serialization) 27protected KeyedCollection(IEqualityComparer<TKey>? comparer) : this(comparer, DefaultThreshold) 31protected KeyedCollection(IEqualityComparer<TKey>? comparer, int dictionaryCreationThreshold) 56public IEqualityComparer<TKey> Comparer => comparer;
System.Private.CoreLib (235)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Concurrent\ConcurrentDictionary.cs (39)
104/// <see cref="IEqualityComparer{TKey}"/>. 106/// <param name="comparer">The <see cref="IEqualityComparer{TKey}"/> implementation to use when comparing keys.</param> 107public ConcurrentDictionary(IEqualityComparer<TKey>? comparer) 113/// level, has the default initial capacity, and uses the specified <see cref="IEqualityComparer{TKey}"/>. 116/// <param name="comparer">The <see cref="IEqualityComparer{TKey}"/> implementation to use when comparing keys.</param> 118public ConcurrentDictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) 130/// <see cref="IEqualityComparer{TKey}"/>. 137/// <param name="comparer">The <see cref="IEqualityComparer{TKey}"/> implementation to use when comparing keys.</param> 141public ConcurrentDictionary(int concurrencyLevel, IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) 152/// uses the specified <see cref="IEqualityComparer{TKey}"/>. 156/// <param name="comparer">The <see cref="IEqualityComparer{TKey}"/> implementation to use when comparing keys.</param> 158public ConcurrentDictionary(int concurrencyLevel, int capacity, IEqualityComparer<TKey>? comparer) 163internal ConcurrentDictionary(int concurrencyLevel, int capacity, bool growLockArray, IEqualityComparer<TKey>? comparer) 216NonRandomizedStringEqualityComparer.GetStringComparer(comparer) is IEqualityComparer<string> stringComparer) 218comparer = (IEqualityComparer<TKey>)stringComparer; 301private int GetHashCode(IEqualityComparer<TKey>? comparer, TKey key) 321private static bool NodeEqualsKey(IEqualityComparer<TKey>? comparer, Node node, TKey key) 444IEqualityComparer<TKey>? comparer = tables._comparer; 526IEqualityComparer<TKey>? comparer = tables._comparer; 560IEqualityComparer<TKey>? comparer = tables._comparer; 635IEqualityComparer<TKey>? comparer = tables._comparer; 923IEqualityComparer<TKey>? comparer = tables._comparer; 1093/// Gets the <see cref="IEqualityComparer{TKey}" /> 1097/// The <see cref="IEqualityComparer{TKey}" /> generic interface implementation 1103/// whether keys are equal. You can specify an implementation of the <see cref="IEqualityComparer{TKey}" /> 1107public IEqualityComparer<TKey> Comparer 1111IEqualityComparer<TKey>? comparer = _tables._comparer; 1115if ((comparer as NonRandomizedStringEqualityComparer)?.GetUnderlyingEqualityComparer() is IEqualityComparer<string> ec) 1117return (IEqualityComparer<TKey>)ec; 1196IEqualityComparer<TKey>? comparer = tables._comparer; 1238IEqualityComparer<TKey>? comparer = tables._comparer; 1270IEqualityComparer<TKey>? comparer = tables._comparer; 1322IEqualityComparer<TKey>? comparer = tables._comparer; 1395IEqualityComparer<TKey>? comparer = tables._comparer; 1461IEqualityComparer<TKey>? comparer = tables._comparer; 1960IEqualityComparer<TKey>? upgradeComparer = null; 1963upgradeComparer = (IEqualityComparer<TKey>)nrsec.GetUnderlyingEqualityComparer(); 2261internal readonly IEqualityComparer<TKey>? _comparer; 2271internal Tables(VolatileNode[] buckets, object[] locks, int[] countPerLock, IEqualityComparer<TKey>? comparer)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\Dictionary.cs (20)
35private IEqualityComparer<TKey>? _comparer; 44public Dictionary(IEqualityComparer<TKey>? comparer) : this(0, comparer) { } 46public Dictionary(int capacity, IEqualityComparer<TKey>? comparer) 73NonRandomizedStringEqualityComparer.GetStringComparer(_comparer!) is IEqualityComparer<string> stringComparer) 75_comparer = (IEqualityComparer<TKey>)stringComparer; 87public Dictionary(IDictionary<TKey, TValue> dictionary, IEqualityComparer<TKey>? comparer) : 100public Dictionary(IEnumerable<KeyValuePair<TKey, TValue>> collection, IEqualityComparer<TKey>? comparer) : 193public IEqualityComparer<TKey> Comparer 200return (IEqualityComparer<TKey>)IInternalStringEqualityComparer.GetUnderlyingEqualityComparer((IEqualityComparer<string?>)_comparer); 386info.AddValue(ComparerName, Comparer, typeof(IEqualityComparer<TKey>)); 408IEqualityComparer<TKey>? comparer = _comparer; 525IEqualityComparer<TKey>? comparer = _comparer; 1090IEqualityComparer<TKey>? comparer = dictionary._comparer; 1213_comparer = (IEqualityComparer<TKey>)siInfo.GetValue(ComparerName, typeof(IEqualityComparer<TKey>))!; // When serialized if comparer is null, we use the default. 1263IEqualityComparer<TKey> comparer = _comparer = (IEqualityComparer<TKey>)((NonRandomizedStringEqualityComparer)_comparer).GetRandomizedEqualityComparer(); 1309IEqualityComparer<TKey>? comparer = _comparer; 1435IEqualityComparer<TKey>? comparer = _comparer;
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\EqualityComparer.cs (1)
44public static EqualityComparer<T> Create<TKey>(Func<T?, TKey?> keySelector, IEqualityComparer<TKey>? keyComparer = null)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\HashSet.cs (20)
49private IEqualityComparer<T>? _comparer; 53public HashSet() : this((IEqualityComparer<T>?)null) { } 55public HashSet(IEqualityComparer<T>? comparer) 72NonRandomizedStringEqualityComparer.GetStringComparer(_comparer) is IEqualityComparer<string> stringComparer) 74_comparer = (IEqualityComparer<T>)stringComparer; 88public HashSet(IEnumerable<T> collection, IEqualityComparer<T>? comparer) : this(comparer) 121public HashSet(int capacity, IEqualityComparer<T>? comparer) : this(comparer) 228IEqualityComparer<T>? comparer = _comparer; 302IEqualityComparer<T>? comparer = _comparer; 705info.AddValue(ComparerName, Comparer, typeof(IEqualityComparer<T>)); 732_comparer = (IEqualityComparer<T>)siInfo.GetValue(ComparerName, typeof(IEqualityComparer<T>))!; 1247public IEqualityComparer<T> Comparer 1254return (IEqualityComparer<T>)IInternalStringEqualityComparer.GetUnderlyingEqualityComparer((IEqualityComparer<string?>)_comparer); 1266internal IEqualityComparer<T> EffectiveComparer => _comparer ?? EqualityComparer<T>.Default; 1309IEqualityComparer<T> comparer = _comparer = (IEqualityComparer<T>)((NonRandomizedStringEqualityComparer)_comparer).GetRandomizedEqualityComparer(); 1392public static IEqualityComparer<HashSet<T>> CreateSetComparer() => new HashSetEqualityComparer<T>(); 1430IEqualityComparer<T>? comparer = _comparer;
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\IAlternateEqualityComparer.cs (3)
7/// Implemented by an <see cref="IEqualityComparer{T}"/> to support comparing 26/// This interface is intended to be implemented on a type that also implements <see cref="IEqualityComparer{T}"/>. 27/// The result of this method should return the same hash code as would invoking the <see cref="IEqualityComparer{T}.GetHashCode"/>
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\IInternalStringEqualityComparer.cs (4)
7/// Represents an <see cref="IEqualityComparer{String}"/> that's meant for internal 14IEqualityComparer<string?> GetUnderlyingEqualityComparer(); 20internal static IEqualityComparer<string?> GetUnderlyingEqualityComparer(IEqualityComparer<string?> outerComparer)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\NonRandomizedStringEqualityComparer.cs (6)
27private readonly IEqualityComparer<string?> _underlyingComparer; 29private NonRandomizedStringEqualityComparer(IEqualityComparer<string?> underlyingComparer) 66public virtual IEqualityComparer<string?> GetUnderlyingEqualityComparer() => _underlyingComparer; 79internal OrdinalComparer(IEqualityComparer<string?> wrappedComparer) : base(wrappedComparer) 111internal OrdinalIgnoreCaseComparer(IEqualityComparer<string?> wrappedComparer) : base(wrappedComparer) 146public static IEqualityComparer<string>? GetStringComparer(object comparer)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\RandomizedStringEqualityComparer.cs (6)
18private readonly IEqualityComparer<string?> _underlyingComparer; 20private unsafe RandomizedStringEqualityComparer(IEqualityComparer<string?> underlyingComparer) 30internal static RandomizedStringEqualityComparer Create(IEqualityComparer<string?> underlyingComparer, bool ignoreCase) 42public IEqualityComparer<string?> GetUnderlyingEqualityComparer() => _underlyingComparer; 52internal OrdinalComparer(IEqualityComparer<string?> wrappedComparer) 97internal OrdinalIgnoreCaseComparer(IEqualityComparer<string?> wrappedComparer)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\ReferenceEqualityComparer.cs (1)
9/// An <see cref="IEqualityComparer{Object}"/> that uses reference equality (<see cref="object.ReferenceEquals(object?, object?)"/>)
src\runtime\src\libraries\System.Private.CoreLib\src\System\HashCode.cs (1)
306public void Add<T>(T value, IEqualityComparer<T>? comparer)
src\runtime\src\libraries\System.Private.CoreLib\src\System\MemoryExtensions.cs (130)
371/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 373public static bool Contains<T>(this ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer = null) => 466/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 468public static bool ContainsAny<T>(this ReadOnlySpan<T> span, T value0, T value1, IEqualityComparer<T>? comparer = null) => 489/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 491public static bool ContainsAny<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2, IEqualityComparer<T>? comparer = null) => 512public static bool ContainsAny<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values, IEqualityComparer<T>? comparer = null) => 558/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 564public static bool ContainsAnyExcept<T>(this ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer = null) => 587/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 593public static bool ContainsAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1, IEqualityComparer<T>? comparer = null) => 618/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 624public static bool ContainsAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2, IEqualityComparer<T>? comparer = null) => 645/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 651public static bool ContainsAnyExcept<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values, IEqualityComparer<T>? comparer = null) => 852/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 858public static unsafe int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer = null) 911static int IndexOfAnyExceptComparer(ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer) 968/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 974public static unsafe int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1, IEqualityComparer<T>? comparer = null) 1016static int IndexOfAnyExceptComparer(ReadOnlySpan<T> span, T value0, T value1, IEqualityComparer<T>? comparer) 1078/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 1084public static unsafe int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2, IEqualityComparer<T>? comparer = null) 1129static int IndexOfAnyExceptComparer(ReadOnlySpan<T> span, T value0, T value1, T value2, IEqualityComparer<T>? comparer) 1263/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 1268public static int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values, IEqualityComparer<T>? comparer = null) 1430/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 1436public static unsafe int LastIndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer = null) 1489static int LastIndexOfAnyExceptComparer(ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer) 1546/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 1552public static unsafe int LastIndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1, IEqualityComparer<T>? comparer = null) 1594static int LastIndexOfAnyExceptComparer(ReadOnlySpan<T> span, T value0, T value1, IEqualityComparer<T>? comparer) 1656/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 1662public static unsafe int LastIndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2, IEqualityComparer<T>? comparer = null) 1707static int LastIndexOfAnyExceptComparer(ReadOnlySpan<T> span, T value0, T value1, T value2, IEqualityComparer<T>? comparer) 1843/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 1848public static int LastIndexOfAnyExcept<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values, IEqualityComparer<T>? comparer = null) 2247/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 2249public static unsafe int IndexOf<T>(this ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer = null) 2297static int IndexOfComparer(ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer) 2346/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 2348public static unsafe int IndexOf<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value, IEqualityComparer<T>? comparer = null) 2368static int IndexOfComparer(ReadOnlySpan<T> span, ReadOnlySpan<T> value, IEqualityComparer<T>? comparer) 2447/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 2449public static unsafe int LastIndexOf<T>(this ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer = null) 2502static int LastIndexOfComparer(ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer) 2555/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 2557public static unsafe int LastIndexOf<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value, IEqualityComparer<T>? comparer = null) 2580static int LastIndexOfComparer(ReadOnlySpan<T> span, ReadOnlySpan<T> value, IEqualityComparer<T>? comparer) 2699/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 2701public static unsafe int IndexOfAny<T>(this ReadOnlySpan<T> span, T value0, T value1, IEqualityComparer<T>? comparer = null) 2743static int IndexOfAnyComparer(ReadOnlySpan<T> span, T value0, T value1, IEqualityComparer<T>? comparer) 2802/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 2804public static unsafe int IndexOfAny<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2, IEqualityComparer<T>? comparer = null) 2849static int IndexOfAnyComparer(ReadOnlySpan<T> span, T value0, T value1, T value2, IEqualityComparer<T>? comparer) 2972/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 2973public static int IndexOfAny<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values, IEqualityComparer<T>? comparer = null) 3119/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 3121public static unsafe int LastIndexOfAny<T>(this ReadOnlySpan<T> span, T value0, T value1, IEqualityComparer<T>? comparer = null) 3163static int LastIndexOfAnyComparer(ReadOnlySpan<T> span, T value0, T value1, IEqualityComparer<T>? comparer) 3223/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 3225public static unsafe int LastIndexOfAny<T>(this ReadOnlySpan<T> span, T value0, T value1, T value2, IEqualityComparer<T>? comparer = null) 3270static int LastIndexOfAnyComparer(ReadOnlySpan<T> span, T value0, T value1, T value2, IEqualityComparer<T>? comparer) 3394/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 3395public static int LastIndexOfAny<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values, IEqualityComparer<T>? comparer = null) 3465/// Determines whether two sequences are equal by comparing the elements using an <see cref="IEqualityComparer{T}"/>. 3469/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 3472public static bool SequenceEqual<T>(this Span<T> span, ReadOnlySpan<T> other, IEqualityComparer<T>? comparer = null) => 3476/// Determines whether two sequences are equal by comparing the elements using an <see cref="IEqualityComparer{T}"/>. 3480/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 3482public static unsafe bool SequenceEqual<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> other, IEqualityComparer<T>? comparer = null) 3613public static bool StartsWith<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value, IEqualityComparer<T>? comparer = null) => 3660public static bool EndsWith<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value, IEqualityComparer<T>? comparer = null) => 3681/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 3684public static bool StartsWith<T>(this ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer = null) => 3705/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 3708public static bool EndsWith<T>(this ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer = null) => 4535/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 4537public static unsafe void Replace<T>(this Span<T> span, T oldValue, T newValue, IEqualityComparer<T>? comparer = null) 4605static void ReplaceComparer(Span<T> span, T oldValue, T newValue, IEqualityComparer<T>? comparer) 4710/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 4714public static unsafe void Replace<T>(this ReadOnlySpan<T> source, Span<T> destination, T oldValue, T newValue, IEqualityComparer<T>? comparer = null) 4799static void ReplaceComparer(ReadOnlySpan<T> source, Span<T> destination, T oldValue, T newValue, IEqualityComparer<T>? comparer) 4924/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 4927public static int CommonPrefixLength<T>(this Span<T> span, ReadOnlySpan<T> other, IEqualityComparer<T>? comparer) => 4981/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 4983public static int CommonPrefixLength<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> other, IEqualityComparer<T>? comparer) 5470/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 5473public static unsafe int Count<T>(this ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer = null) 5527static int CountComparer(ReadOnlySpan<T> span, T value, IEqualityComparer<T>? comparer) 5587/// <param name="comparer">The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the default <see cref="IEqualityComparer{T}"/> for the type of an element.</param> 5589public static int Count<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> value, IEqualityComparer<T>? comparer = null) 5659/// The <see cref="IEqualityComparer{T}"/> implementation to use when comparing elements, or <see langword="null"/> to use the 5660/// default <see cref="IEqualityComparer{T}"/> for the type of an element. 5664public static int CountAny<T>(this ReadOnlySpan<T> span, ReadOnlySpan<T> values, IEqualityComparer<T>? comparer = null)
src\runtime\src\libraries\System.Private.CoreLib\src\System\StringComparer.cs (4)
61/// Determines whether the specified <see cref="IEqualityComparer{String}"/> is a well-known ordinal string comparer. 80public static bool IsWellKnownOrdinalComparer(IEqualityComparer<string?>? comparer, out bool ignoreCase) 112/// Determines whether the specified <see cref="IEqualityComparer{String}"/> is a well-known culture-aware string comparer. 130public static bool IsWellKnownCultureAwareComparer(IEqualityComparer<string?>? comparer, [NotNullWhen(true)] out CompareInfo? compareInfo, out CompareOptions compareOptions)
System.Private.Windows.Core (1)
System\Collections\Specialized\CompatibleIComparer.cs (1)
8internal static IEqualityComparer<string> Default { get; } = new BackCompatibleStringComparer();
System.Private.Xml (1)
System\Xml\Resolvers\XmlPreloadedResolver.cs (1)
171public XmlPreloadedResolver(XmlResolver? fallbackResolver, XmlKnownDtds preloadedDtds, IEqualityComparer<Uri>? uriComparer)
System.Runtime (1)
src\runtime\artifacts\obj\System.Runtime\Release\net11.0\System.Runtime.Forwards.cs (1)
84[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Collections.Generic.IEqualityComparer<>))]
System.ServiceModel.Primitives (26)
Internals\System\Runtime\MruCache.cs (1)
51public MruCache(int lowWatermark, int highWatermark, IEqualityComparer<TKey> comparer)
System\IdentityModel\Claims\Claim.cs (3)
49private IEqualityComparer<Claim> _comparer; 51private Claim(string claimType, object resource, string right, IEqualityComparer<Claim> comparer) 83public static IEqualityComparer<Claim> DefaultComparer
System\IdentityModel\Claims\ClaimComparer.cs (15)
17private static IEqualityComparer<Claim> s_defaultComparer; 18private static IEqualityComparer<Claim> s_hashComparer; 19private static IEqualityComparer<Claim> s_dnsComparer; 20private static IEqualityComparer<Claim> s_rsaComparer; 21private static IEqualityComparer<Claim> s_thumbprintComparer; 22private static IEqualityComparer<Claim> s_upnComparer; 23private static IEqualityComparer<Claim> s_x500DistinguishedNameComparer; 31public static IEqualityComparer<Claim> GetComparer(string claimType) 71public static IEqualityComparer<Claim> Default 83public static IEqualityComparer<Claim> Dns 95public static IEqualityComparer<Claim> Hash 107public static IEqualityComparer<Claim> Rsa 119public static IEqualityComparer<Claim> Thumbprint 131public static IEqualityComparer<Claim> Upn 143public static IEqualityComparer<Claim> X500DistinguishedName
System\IdentityModel\Claims\ClaimSet.cs (1)
56public virtual bool ContainsClaim(Claim claim, IEqualityComparer<Claim> comparer)
System\ServiceModel\EndpointIdentity.cs (3)
14private IEqualityComparer<Claim> _claimComparer; 30protected void Initialize(Claim identityClaim, IEqualityComparer<Claim> claimComparer) 133private IEqualityComparer<Claim> GetClaimComparer()
System\ServiceModel\SynchronizedKeyedCollection.cs (3)
17private IEqualityComparer<K> _comparer; 35protected SynchronizedKeyedCollection(object syncRoot, IEqualityComparer<K> comparer) 42protected SynchronizedKeyedCollection(object syncRoot, IEqualityComparer<K> comparer, int dictionaryCreationThreshold)
System.Text.Json (2)
src\runtime\src\libraries\System.Text.Json\Common\JsonHelpers.cs (1)
105public static T[] TraverseGraphWithTopologicalSort<T>(T entryNode, Func<T, ICollection<T>> getChildren, IEqualityComparer<T>? comparer = null)
System\Text\Json\JsonHelpers.cs (1)
281IEqualityComparer<TKey> comparer)
System.Text.Json.SourceGeneration (1)
src\runtime\src\libraries\System.Text.Json\Common\JsonHelpers.cs (1)
105public static T[] TraverseGraphWithTopologicalSort<T>(T entryNode, Func<T, ICollection<T>> getChildren, IEqualityComparer<T>? comparer = null)
System.Threading.RateLimiting (4)
System\Threading\RateLimiting\DefaultPartitionedRateLimiter.cs (2)
36IEqualityComparer<TKey>? equalityComparer = null) 43IEqualityComparer<TKey>? equalityComparer, TimeSpan timerInterval)
System\Threading\RateLimiting\PartitionedRateLimiter.cs (2)
24/// <param name="equalityComparer">Optional <see cref="IEqualityComparer{T}"/> to customize the comparison logic for <typeparamref name="TPartitionKey"/>.</param> 28IEqualityComparer<TPartitionKey>? equalityComparer = null) where TPartitionKey : notnull
System.Windows.Forms.Design (4)
System\ComponentModel\Design\Serialization\DesignerSerializationManager.cs (2)
974bool IEqualityComparer<object>.Equals(object? x, object? y) 979int IEqualityComparer<object>.GetHashCode(object x)
System\ComponentModel\Design\Serialization\ExpressionTable.cs (2)
46bool IEqualityComparer<object>.Equals(object? x, object? y) 49int IEqualityComparer<object>.GetHashCode(object? x)
System.Xaml (1)
System\Xaml\XamlSchemaContext.cs (1)
1210internal static ConcurrentDictionary<K, V> CreateDictionary<K, V>(IEqualityComparer<K> comparer)