Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 2582|Svare: 1

[Kilde] .NET/C# velger smart indekser i foreach

[Kopier lenke]
Publisert på 01.02.2024 20:26:18 | | | |
Introduksjon

For- og foreach-løkkene er en av de mest nyttige konstruksjonene i C#-utviklerverktøykassen.
Etter min mening er det mer praktisk å iterere over en samling enn i de fleste tilfeller.
Den fungerer med alle samlingstyper, inkludert ikke-indekserbare (som , og krever ikke tilgang til det nåværende elementet gjennom indeksen).
Men noen ganger er det virkelig nødvendig med en indeks over det aktuelle objektet; Jeg støtte på dette problemet for en stund siden da jeg brukte foreach for å gå gjennom samlinger under utvikling. Dette bruker vanligvis ett av følgende mønstre:


Det har alltid irritert meg; Kan vi ikke få både verdier og indekser?
Det finnes en enkel løsning med Linq og tupler.

Løsning 1:

Bare skriv en utvidelsesmetode som denne:

Vennligst innfør koden ovenfor i følgende navnerom:

Kallemetode:

Merk: Bak samlingenMedIndeks();

Løsning 2:

Hvis du synes utvidelsesmetoden er tungvint, kan du også bruke Løsning 2

Det er gjort, det har litt innvirkning på ytelsen, du kan observere bruken på forespørsel!!





Foregående:Nginx deaktiverer ugyldige løsninger for TLSv1.0 og TLSv1.1
Neste:Oracle-spørringer returnerer problemer med feltets fulle caps
 Vert| Publisert på 24.02.2024 17:00:44 |
.NET 9-parsamlingerLagt til Index-utvidelsesmetoden, du kan hente indeksen direkte, se til:Innloggingen med hyperkoblingen er synlig.

offentlig statisk System.Collections.Generic.IEnumerable<(int Index, TSource Item)> Index<TSource> (denne System.Collections.Generic.IEnumerable<TSource> kilden);

Last ned forhåndsvisningen av VS 2022 på:Innloggingen med hyperkoblingen er synlig.

.NET 9.0 forhåndsvisning nedlasting:Innloggingen med hyperkoblingen er synlig.

Lag en ny .NET 9-konsollapp med følgende kode:







Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com