Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 24681|Vastaus: 1

[Lähde] C# Erilliset objektit deduplikoivat ehdollisesti

[Kopioi linkki]
Julkaistu 17.8.2018 10.56.00 | | | |
Yleensä käytämme Distinctia C#:ssa taulukon deduplikaatioon, yleisiin taulukkopohjaisiin tietotyyppeihin, kuten int, string. voidaan käyttää myös objektin deduplikaatioon, katsotaanpa C#:n määritelmää Distinct-metodille:



Kuorma on raskas, ensimmäinen parametri lisätään tämä, joka on laajennusmenetelmä, laajennusmenetelmästä, ymmärräthän Baidu.
Tutkitaan Distinctin objektien deduplikaatiota, sanotaan, että meillä on nyt People-luokka:




Julistamme kokoelman ListPeole-esineitä:

Käytetään Distinct-menetelmää ListPeople-sivustolla ilman parametreja, ja tulos on seuraava:



On havaittavissa, että jos Distinct-metodilla ei ole parametreja, se deduplicatoi p, p1, p2 objektijoukossa, eikä eri olioille, joilla on sama jäsenarvo, deduplikaatiota ei tapahdu.
Nyt meillä on vaatimus, että henkilöille, joilla on sama ID, lasketaan samaksi henkilöksi, että joukon ei-dlikoidut henkilöt (vain yksi sama ID), tällä hetkellä käytämme toista Distinct-menetelmää, joka vaatii, että syötetyt parametrit ovat tyyppiä IEqualityComparer, perimme geneerisen rajapinnan, lisäämme seuraavan koodin:


Perimällä IEqualityComparer-rajapinnan sinun täytyy toteuttaa Equals- ja GetHashCode-metodit.
Kun vertailemme, voimme välittää entiteettiä, jolla on PeopleCompareByID:


Suorituksen tulokset ovat seuraavat:



Olemme saavuttaneet identiteetin deduplikoinnin vaikutuksen.
Nyt vaatimukset ovat muuttuneet jälleen, ID ja provinssi ovat sama henkilö, jotta voi tuottaa henkilön tiedot (sama voi tuottaa yhden vapaasti), tällä hetkellä näemme, että ID=0 ja Province="Hubei" on kopioitu, deduplicatoimiseksi meillä on toinen luokka tai peritään IEqualityComparerilta:


Vastaavasti, kun käytetään Distinct-menetelmää, PeopleCompareByIDAndProvince -instanssi ohitetaan seuraavasti:

Tulokset juoksun jälkeen ovat seuraavat:



Saavutimme haluamamme vaikutuksen.
Tätä menetelmää voidaan käyttää, kun kohtaamme deduplikaatio-ongelman, jossa on kolme tai useampi objektijäsen, jotta voidaan selvittää, onko objekti kopioitu.
Yllä oleva on vaatimaton mielipiteeni.






Edellinen:MYSQL:WARN: Establishing SSL connection without server's identity verificatio...
Seuraava:C# Syväsukellus - Tuhoajat
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com