diff --git a/collections-arrays/CompareArrays/BenchmarkRunner/ArrayComparerBenchmark.cs b/collections-arrays/CompareArrays/BenchmarkRunner/ArrayComparerBenchmark.cs
index 3aa9e0e25a..7882ea548a 100644
--- a/collections-arrays/CompareArrays/BenchmarkRunner/ArrayComparerBenchmark.cs
+++ b/collections-arrays/CompareArrays/BenchmarkRunner/ArrayComparerBenchmark.cs
@@ -54,15 +54,15 @@ public void AsSpanSequenceEqual()
}
[Benchmark]
- public void EnumerableEquals()
+ public void ObjectEquals()
{
- _arrayComparer.EnumerableEquals(_firstArray, _secondArray);
+ _arrayComparer.ObjectEquals(_firstArray, _secondArray);
}
[Benchmark]
- public void EnumerableReferenceEquals()
+ public void ObjectReferenceEquals()
{
- _arrayComparer.EnumerableReferenceEquals(_firstArray, _secondArray);
+ _arrayComparer.ObjectReferenceEquals(_firstArray, _secondArray);
}
[Benchmark]
diff --git a/collections-arrays/CompareArrays/BenchmarkRunner/BenchmarkRunner.csproj b/collections-arrays/CompareArrays/BenchmarkRunner/BenchmarkRunner.csproj
index 3d90926513..405b9da96e 100644
--- a/collections-arrays/CompareArrays/BenchmarkRunner/BenchmarkRunner.csproj
+++ b/collections-arrays/CompareArrays/BenchmarkRunner/BenchmarkRunner.csproj
@@ -2,13 +2,13 @@
Exe
- net6.0
+ net10.0
enable
disable
-
+
diff --git a/collections-arrays/CompareArrays/CompareArrays/ArrayComparer.cs b/collections-arrays/CompareArrays/CompareArrays/ArrayComparer.cs
index 2550369e0e..c71f6a05a4 100644
--- a/collections-arrays/CompareArrays/CompareArrays/ArrayComparer.cs
+++ b/collections-arrays/CompareArrays/CompareArrays/ArrayComparer.cs
@@ -35,15 +35,15 @@ public bool AsSpanSequenceEqual(int[] firstArray, int[] secondArray)
public bool EnumerableSequenceEqual(Article[] articleArray, Article[] articleArrayCopy)
{
- return Enumerable.SequenceEqual(articleArray, articleArrayCopy, new Article());
+ return Enumerable.SequenceEqual(articleArray, articleArrayCopy, new ArticleComparer());
}
- public bool EnumerableEquals(int[] firstArray, int[] secondArray)
+ public bool ObjectEquals(int[] firstArray, int[] secondArray)
{
return Equals(firstArray, secondArray);
}
- public bool EnumerableReferenceEquals(int[] firstArray, int[] secondArray)
+ public bool ObjectReferenceEquals(int[] firstArray, int[] secondArray)
{
return ReferenceEquals(firstArray, secondArray);
}
diff --git a/collections-arrays/CompareArrays/CompareArrays/Article.cs b/collections-arrays/CompareArrays/CompareArrays/Article.cs
index af2b1aabde..ff135e81a3 100644
--- a/collections-arrays/CompareArrays/CompareArrays/Article.cs
+++ b/collections-arrays/CompareArrays/CompareArrays/Article.cs
@@ -1,18 +1,27 @@
namespace CompareArrays
{
- public class Article : IEqualityComparer
+ public class Article
{
public string? Title { get; set; }
public DateTime LastUpdate { get; set; }
+ }
+ public class ArticleComparer : IEqualityComparer
+ {
public bool Equals(Article? first, Article? second)
{
- return first?.Title == second?.Title && first?.LastUpdate == second?.LastUpdate;
+ if (ReferenceEquals(first, second))
+ return true;
+
+ if (first is null || second is null)
+ return false;
+
+ return first.Title == second.Title && first.LastUpdate == second.LastUpdate;
}
public int GetHashCode(Article obj)
{
- return base.GetHashCode();
+ return HashCode.Combine(obj.Title, obj.LastUpdate);
}
}
}
diff --git a/collections-arrays/CompareArrays/CompareArrays/CompareArrays.csproj b/collections-arrays/CompareArrays/CompareArrays/CompareArrays.csproj
index 9ad2a07d38..ed9781c223 100644
--- a/collections-arrays/CompareArrays/CompareArrays/CompareArrays.csproj
+++ b/collections-arrays/CompareArrays/CompareArrays/CompareArrays.csproj
@@ -2,7 +2,7 @@
Exe
- net6.0
+ net10.0
enable
enable
diff --git a/collections-arrays/CompareArrays/CompareArrays/Program.cs b/collections-arrays/CompareArrays/CompareArrays/Program.cs
index 19184015fb..0d70124563 100644
--- a/collections-arrays/CompareArrays/CompareArrays/Program.cs
+++ b/collections-arrays/CompareArrays/CompareArrays/Program.cs
@@ -48,13 +48,13 @@ public static void Main(string[] args)
Console.WriteLine();
- Console.WriteLine("---------- Compare using Enumerable.Equals");
- Console.WriteLine($"Are equal: {_arrayComparer.EnumerableEquals(_firstArray, _secondArray)}");
+ Console.WriteLine("---------- Compare using object.Equals");
+ Console.WriteLine($"Are equal: {_arrayComparer.ObjectEquals(_firstArray, _secondArray)}");
Console.WriteLine();
- Console.WriteLine("---------- Compare using Enumerable.ReferenceEquals");
- Console.WriteLine($"Are equal: {_arrayComparer.EnumerableReferenceEquals(_firstArray, _secondArray)}");
+ Console.WriteLine("---------- Compare using object.ReferenceEquals");
+ Console.WriteLine($"Are equal: {_arrayComparer.ObjectReferenceEquals(_firstArray, _secondArray)}");
Console.WriteLine();
diff --git a/collections-arrays/CompareArrays/Tests/Tests.cs b/collections-arrays/CompareArrays/Tests/Tests.cs
index ec2a0845ad..5760fe7adf 100644
--- a/collections-arrays/CompareArrays/Tests/Tests.cs
+++ b/collections-arrays/CompareArrays/Tests/Tests.cs
@@ -92,33 +92,33 @@ public void GivenTwoEqualDataArraysOfArticle_WhenCompareThemUsingEnumerableSeque
}
[TestMethod]
- public void GivenTwoDifferentReferenceArrays_WhenCompareThemUsingEnumerableEquals_ThenReturnFalse()
+ public void GivenTwoDifferentReferenceArrays_WhenCompareThemUsingObjectEquals_ThenReturnFalse()
{
- var result = _arrayComparer.EnumerableEquals(_firstArray, _secondArray);
+ var result = _arrayComparer.ObjectEquals(_firstArray, _secondArray);
Assert.IsFalse(result);
}
[TestMethod]
- public void GivenTwoEqualReferenceArrays_WhenCompareThemUsingEnumerableEquals_ThenReturnTrue()
+ public void GivenTwoEqualReferenceArrays_WhenCompareThemUsingObjectEquals_ThenReturnTrue()
{
- var result = _arrayComparer.EnumerableEquals(_firstArray, _firstArray);
+ var result = _arrayComparer.ObjectEquals(_firstArray, _firstArray);
Assert.IsTrue(result);
}
[TestMethod]
- public void GivenTwoDifferentReferenceArrays_WhenCompareThemUsingEnumerableReferenceEquals_ThenReturnFalse()
+ public void GivenTwoDifferentReferenceArrays_WhenCompareThemUsingObjectReferenceEquals_ThenReturnFalse()
{
- var result = _arrayComparer.EnumerableReferenceEquals(_firstArray, _secondArray);
+ var result = _arrayComparer.ObjectReferenceEquals(_firstArray, _secondArray);
Assert.IsFalse(result);
}
[TestMethod]
- public void GivenTwoEqualReferenceArrays_WhenCompareThemUsingEnumerableReferenceEquals_ThenReturnTrue()
+ public void GivenTwoEqualReferenceArrays_WhenCompareThemUsingObjectReferenceEquals_ThenReturnTrue()
{
- var result = _arrayComparer.EnumerableReferenceEquals(_firstArray, _firstArray);
+ var result = _arrayComparer.ObjectReferenceEquals(_firstArray, _firstArray);
Assert.IsTrue(result);
}
diff --git a/collections-arrays/CompareArrays/Tests/Tests.csproj b/collections-arrays/CompareArrays/Tests/Tests.csproj
index 39b8482d08..7a61d82cea 100644
--- a/collections-arrays/CompareArrays/Tests/Tests.csproj
+++ b/collections-arrays/CompareArrays/Tests/Tests.csproj
@@ -1,17 +1,17 @@
- net6.0
+ net10.0
enable
false
-
-
-
-
+
+
+
+