dotnet/dotnet-api-docs

.Net 8+ LINQ examples with EqualityComparer.Create

Opened this issue · 1 comments

in .Net 8 new class was created to allow using lambdas anywhere that IQualityComparer is used. According to dotnet/runtime#101448 the reasoning was that adding lambda functionality everywhere IEqualityComparer is used would become a maintenance headache.

Unfortunately, EqualityComparer.Create is very new and not well enough known to show up on google searches or otherwise be easily discoverable.

I propose adding small example snippets that demonstrate this new functionality so that it can be more easily discovered. For example: in Enumerable.SequenceEqual(IEnumerable, IEnumerable, IEqualityComparer)

The following example demonstrates how a lambda function can be used to compare to sequences:

ProductA[] storeA = { new ProductA { Name = "apple", Code = 9 },
                       new ProductA { Name = "orange", Code = 4 } };

ProductA[] storeB = { new ProductA { Name = "apple", Code = 9 },
                       new ProductA { Name = "orange", Code = 4 } };

IEqualityComparer<ProductA> comparer = EqualityComparer.Create((first,second) => first.Code == second.Code);
bool equalAB = storeA.SequenceEqual(storeB, comparer);

Console.WriteLine("Equal? " + equalAB);

/*
    This code produces the following output:

    Equal? True
*/

Tagging subscribers to this area: @dotnet/area-system-linq