public static EqualityComparer<double> BitwiseDoubleEqualityComparer { get; }
Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison.
(NaN values are considered equal, but only when they have the same representation.)
public static EqualityComparer<double?> BitwiseNullableDoubleEqualityComparer { get; }
Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison.
(NaN values are considered equal, but only when they have the same representation.)
public static EqualityComparer<float?> BitwiseNullableSingleEqualityComparer { get; }
Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison.
(NaN values are considered equal, but only when they have the same representation.)
public static EqualityComparer<float> BitwiseSingleEqualityComparer { get; }
Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison.
(NaN values are considered equal, but only when they have the same representation.)
public static EqualityComparer<T> GetEqualityComparer<T>()
Returns an equality comparer for T suitable for Protobuf equality comparisons.
This is usually just the default equality comparer for the type, but floating point numbers are compared
bitwise.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eProtobufEqualityComparers\u003c/code\u003e class provides methods for implementing equality comparisons, with a focus on bitwise equality for floating-point numbers.\u003c/p\u003e\n"],["\u003cp\u003eIt offers static properties like \u003ccode\u003eBitwiseDoubleEqualityComparer\u003c/code\u003e and \u003ccode\u003eBitwiseSingleEqualityComparer\u003c/code\u003e for comparing 64-bit and 32-bit floating-point values, respectively, using bitwise comparison where NaN values are equal if they have the same representation.\u003c/p\u003e\n"],["\u003cp\u003eThe class also offers nullable variants of the properties such as \u003ccode\u003eBitwiseNullableDoubleEqualityComparer\u003c/code\u003e and \u003ccode\u003eBitwiseNullableSingleEqualityComparer\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eGetEqualityComparer<T>()\u003c/code\u003e method returns an equality comparer for any type \u003ccode\u003eT\u003c/code\u003e, defaulting to the standard comparer but using bitwise comparison for floating-point types.\u003c/p\u003e\n"]]],[],null,["# Class ProtobufEqualityComparers (3.27.1)\n\nVersion latestkeyboard_arrow_down\n\n- [3.27.1 (latest)](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Collections.ProtobufEqualityComparers)\n- [3.23.0](/dotnet/docs/reference/Google.Protobuf/3.23.0/Google.Protobuf.Collections.ProtobufEqualityComparers)\n- [3.15.8](/dotnet/docs/reference/Google.Protobuf/3.15.8/Google.Protobuf.Collections.ProtobufEqualityComparers) \n\n public static class ProtobufEqualityComparers\n\nProvides a central place to implement equality comparisons, primarily for bitwise float/double equality. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e ProtobufEqualityComparers \n\nInherited Members\n-----------------\n\n[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)) \n[object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)) \n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone) \n[object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Protobuf.Collections](/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.Collections)\n\nAssembly\n--------\n\nGoogle.Protobuf.dll\n\nProperties\n----------\n\n### BitwiseDoubleEqualityComparer\n\n public static EqualityComparer\u003cdouble\u003e BitwiseDoubleEqualityComparer { get; }\n\nReturns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison.\n(NaN values are considered equal, but only when they have the same representation.)\n\n### BitwiseNullableDoubleEqualityComparer\n\n public static EqualityComparer\u003cdouble?\u003e BitwiseNullableDoubleEqualityComparer { get; }\n\nReturns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison.\n(NaN values are considered equal, but only when they have the same representation.)\n\n### BitwiseNullableSingleEqualityComparer\n\n public static EqualityComparer\u003cfloat?\u003e BitwiseNullableSingleEqualityComparer { get; }\n\nReturns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison.\n(NaN values are considered equal, but only when they have the same representation.)\n\n### BitwiseSingleEqualityComparer\n\n public static EqualityComparer\u003cfloat\u003e BitwiseSingleEqualityComparer { get; }\n\nReturns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison.\n(NaN values are considered equal, but only when they have the same representation.)\n\nMethods\n-------\n\n### GetEqualityComparer\\\u003cT\\\u003e()\n\n public static EqualityComparer\u003cT\u003e GetEqualityComparer\u003cT\u003e()\n\nReturns an equality comparer for `T` suitable for Protobuf equality comparisons.\nThis is usually just the default equality comparer for the type, but floating point numbers are compared\nbitwise."]]