Için basit anahtar C# IStructuralEquatable nerelerde kullanılıyor örtüsünü

It's normally expected that if you implement IEquatable.Equals you will also override Object.Equals to be consistent. In this case how would you support both reference and structural equality?

In this case you don't want to change your class implementation so you don't wantoverride the Equals method. this will define a general way to compare objects in your application.

This is really amazing code and works great for .NET Standard libraries. If you are in a .NET Core 2.1 application there is an even cooler way of doing this:

Important Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

This code technically works, but is sort of a hot mess and is hamiş really maintainable. Anyone using the library would have to write this code bey well. The next logical step would be to just use .Equals on the entire metrics.

45IStructuralEquatable seObj = x birli IStructuralEquatable; 64IStructuralEquatable seObj = obj bey IStructuralEquatable;

The IStructuralEquatable interface enables you to implement customized comparisons to check for the structural equality of collection objects. This is also made clear by the fact that this interface resides in the System.Collections namespace.

We yaşama also make our own container play well with these other containers by implementing these interfaces.

Ray BooysenRay Booysen 29.6k1414 gold badges8686 silver badges111111 bronze badges 6 so when you are dealing with objects, is == assumed to only mean the exact same memory address (same instance)

I had the same question. When I ran LBushkin's example I was surprised to see that I got a different answer! Even though that answer başmaklık 8 upvotes, it is wrong. After a lot of 'reflector'ing, here is my take on things.

Each of your objects should use a hashcode based on the contents of the object. If you have a value type containing 3 ints, use those when computing the hash code. Like this, all C# IStructuralEquatable nerelerde kullanılıyor objects with identical content will have the same hash code, independent of app domain and other circumstances.

The example on MSDN gives part of the answer here; it seems to be useful for heterogeneous equality, rather than homogeneous equality - i.e. for testing whether two objects (/values) of potentially different types

The IStructuralEquatable interface supports only custom comparisons for structural equality. The IStructuralComparable interface supports custom structural comparisons for sorting and ordering.

Fantasy TV series with a male protagonist who uses a bow and arrows and has a hawk/falcon/eagle type bird companion

Leave a Reply

Your email address will not be published. Required fields are marked *