Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 2582|Svar: 1

[Källa] .NET/C# väljer smart index i foreach

[Kopiera länk]
Publicerad på 2024-02-01 20:26:18 | | | |
Införandet

For- och foreach-looparna är en av de mest användbara konstruktionerna i C#-utvecklarverktygslådan.
Enligt min åsikt är det smidigare att iterera över en samling än i de flesta fall.
Den fungerar med alla samlingstyper, inklusive icke-indexerbara (såsom , och kräver inte åtkomst till det aktuella elementet via indexet).
Men ibland behövs verkligen ett index över den aktuella punkten; Jag stötte på det här problemet för ett tag sedan när jag använde foreach för att gå igenom samlingar under utveckling. Detta använder vanligtvis ett av följande mönster:


Det har alltid irriterat mig; Kan vi inte få både värden och index?
Det finns en enkel lösning med Linq och tupler.

Lösning 1:

Skriv bara en extension-metod som denna:

Vänligen introducera ovanstående kod i följande namnrymd:

Anropsmetod:

Not: Bakom samlingenWithIndex();

Lösning 2:

Om du tycker att extension-metoden är krånglig kan du också använda Lösning 2

Det är klart, det påverkar prestandan lite, du kan se användningen vid behov!!





Föregående:Nginx inaktiverar ogiltiga lösningar för TLSv1.0 och TLSv1.1
Nästa:Orakelfrågor returnerar fält med fulla kapsyler
 Hyresvärd| Publicerad på 2024-02-24 17:00:44 |
.NET 9-parsamlingarLade till Index-förlängningsmetoden, du kan få indexet direkt, se till:Inloggningen med hyperlänken är synlig.

publik statisk System.Collections.Generic.IEnumerable<(int Index, TSource Item)> Index<TSource> (denna System.Collections.Generic.IEnumerable<TSource> källa);

Ladda ner förhandsvisningen av VS 2022 på:Inloggningen med hyperlänken är synlig.

.NET 9.0 Förhandsvisning Nedladdning:Inloggningen med hyperlänken är synlig.

Skapa en ny .NET 9-konsolapp med följande kod:







Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com