# IEqualityComparer<T>.Equals(T, T) Method

## Definition

Determines whether the specified objects are equal.

```
public:
bool Equals(T x, T y);
```

`public bool Equals (T x, T y);`

`abstract member Equals : 'T * 'T -> bool`

`Public Function Equals (x As T, y As T) As Boolean`

#### Parameters

- x
- T

The first object of type `T`

to compare.

- y
- T

The second object of type `T`

to compare.

#### Returns

`true`

if the specified objects are equal; otherwise, `false`

.

## Remarks

Implement this method to provide a customized equality comparison for type `T`

.

## Notes to Implementers

Implementations are required to ensure that if the Equals(T, T) method returns `true`

for two objects `x`

and `y`

, then the value returned by the GetHashCode(T) method for `x`

must equal the value returned for `y`

.

The Equals(T, T) method is reflexive, symmetric, and transitive. That is, it returns `true`

if used to compare an object with itself; `true`

for two objects `x`

and `y`

if it is `true`

for `y`

and `x`

; and `true`

for two objects `x`

and `z`

if it is `true`

for `x`

and `y`

and also `true`

for `y`

and `z`

.