Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 24681|Svar: 1

[Kilde] C# Forskellige betingede deduplikerede objekter

[Kopier link]
Opslået på 17/08/2018 10.56.00 | | | |
Normalt bruger vi Distinct i C# til array-deduplikering, generelle array-baserede datatyper som int, string. kan også bruges til objektdeduplikering, lad os se på C#'s definition af Differentie-metoden:



Der er en tung belastning, den første parameter tilføjes, nemlig udvidelsesmetoden, og Baidu forstår venligst udvidelsesmetoden.
Lad os studere Disdincts objektdeduplikation, lad os sige, at vi nu har en People-klasse:




Vi erklærer en samling af ListPeole-objekter:

Lad os bruge Differentie-metoden på ListPeople uden nogen parametre, og resultatet er som følger:



Det kan ses, at hvis Disdifferent-metoden ikke har parametre, vil den deduplikere p, p1, p2 i objektsættet, og der er ingen deduplikering for forskellige objekter med samme medlemsværdi som objektet.
Nu har vi et krav, for personer med samme ID, vi tæller som den samme person, for at outputte de ikke-duplikerede personer i sættet (bare output én for samme ID), på dette tidspunkt bruger vi den anden metode Distinct, metoden kræver, at parametrene, der sendes ind, er af typen IEqualityComparer, og vi arver et generisk interface, vi tilføjer følgende kode:


Ved at overtage IEqualityComparer-grænsefladen skal du implementere Equals- og GetHashCode-metoderne.
Når vi sammenligner, kan vi indtaste en enhed med et PeopleCompareByID:


Resultaterne af løbet er som følger:



Vi har opnået effekten af deduplikation ved ID.
Nu er kravene ændret igen, ID og provins er den samme person, for at udlevere personens information (den samme kan udlevere én efter behag), på dette tidspunkt ser vi, at ID=0 og Province="Hubei" duplikeres, for at deduplicere det har vi en anden klasse, eller arver fra IEqualityComparer:


Tilsvarende, når man bruger Differentie-metoden, sendes en instans af PeopleCompareByIDAndProvince:

Resultaterne efter løb er som følger:



Opnåede den effekt, vi ønskede.
Denne metode kan bruges, når man støder på problemet med deduplikation med tre eller flere objektmedlemmer for at afgøre, om objektet er duplikeret.
Ovenstående er min ydmyge mening.






Tidligere:MYSQL:WARN: Establishing SSL connection without server's identity verificatio...
Næste:C# Deep Dive - Destructors
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com