Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 2582|Antwoord: 1

[Bron] .NET/C# kiest slim indexen in foreach

[Link kopiëren]
Geplaatst op 01-02-2024 20:26:18 | | | |
Introductie

De for- en foreach-lussen zijn een van de meest bruikbare constructies in de C#-ontwikkelaarstoolbox.
Naar mijn mening is het overnemen van een collectie handiger dan in de meeste gevallen.
Het werkt met alle verzamelingstypen, inclusief niet-indexeerbare (zoals , en vereisen geen toegang tot het huidige element via de index).
Maar soms is een index van het huidige item echt nodig; Ik liep een tijd geleden tegen dit probleem aan toen ik Foreach gebruikte om collecties in ontwikkeling te doorlopen. Dit gebruikt doorgaans een van de volgende patronen:


Het heeft me altijd geïrriteerd; Kunnen we niet zowel waarden als indexen krijgen?
Er is een eenvoudige oplossing met Linq en tuples.

Oplossing 1:

Schrijf gewoon een extensiemethode zoals deze:

Voer de bovenstaande code in in de volgende naamruimte:

Roepmethode:

Opmerking: Achter de collectieWithIndex();

Oplossing 2:

Als je de extensiemethode omslachtig vindt, kun je ook Oplossing 2 gebruiken

Het is klaar, het heeft een kleine impact op de prestaties, je kunt het gebruik on demand observeren!!





Vorig:Nginx schakelt TLSv1.0 en TLSv1.1 ongeldige oplossingen uit
Volgend:Oracle-queries geven veld-volledige caps problemen terug
 Huisbaas| Geplaatst op 24-02-2024 17:00:44 |
.NET 9 paarverzamelingenDe Index-extensiemethode toegevoegd, je kunt de index direct ophalen, verwijs naar:De hyperlink-login is zichtbaar.

publieke statische System.Collections.Generic.IEnumerable<(int Index, TSource Item)> Index<TSource> (deze System.Collections.Generic.IEnumerable<TSource> bron);

Download de VS 2022 preview op:De hyperlink-login is zichtbaar.

.NET 9.0 Preview Download:De hyperlink-login is zichtbaar.

Maak een nieuwe .NET 9-console-app met de volgende code:







Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com