Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 2582|Odpoveď: 1

[Zdroj] .NET/C# šikovne vyberá indexy vo foreach

[Kopírovať odkaz]
Zverejnené 1. 2. 2024 20:26:18 | | | |
Zavedenie

Slučky for a foreach sú jedny z najužitočnejších konštruktov v C# vývojárskej arzenále.
Podľa mňa je iterovanie cez kolekciu pohodlnejšie než vo väčšine prípadov.
Funguje so všetkými typmi kolekcií, vrátane neindexovateľných (napríklad , a nevyžadujú prístup k aktuálnemu prvku cez index).
Ale niekedy je naozaj potrebný index aktuálnej položky; Na tento problém som narazil pred časom, keď som používal foreach na prechádzanie kolekcií počas vývoja. Typicky používa jeden z nasledujúcich vzorov:


Vždy ma to otravovalo; Nemôžeme získať zároveň hodnoty aj indexy?
Existuje jednoduché riešenie s Linq a n-ticami.

Riešenie 1:

Stačí napísať metódu rozšírenia takto:

Prosím, vložte vyššie uvedený kód do nasledujúceho menného priestoru:

Spôsob volania:

Poznámka: Za kolekciouWithIndex();

Riešenie 2:

Ak vám spôsob predlžovania príde zdĺhavý, môžete použiť aj Riešenie 2

Je to hotové, má to malý vplyv na výkon, môžete pozorovať použitie na požiadanie!!





Predchádzajúci:Nginx deaktivuje neplatné riešenia TLSv1.0 a TLSv1.1
Budúci:Oracle dotazy vracajú problémy s plnými kapacitami poľa
 Prenajímateľ| Zverejnené 24. 2. 2024 17:00:44 |
.NET 9 párové kolekciePridaná metóda rozšírenia indexu, index môžete získať priamo, pozri:Prihlásenie na hypertextový odkaz je viditeľné.

public static System.Collections.Generic.IEnumerable<(int Index, TSource Item)> Index<TSource> (tento System.Collections.Generic.IEnumerable<TSource> zdroj);

Stiahnite si ukážku VS 2022 na:Prihlásenie na hypertextový odkaz je viditeľné.

Ukážkové stiahnutie .NET 9.0:Prihlásenie na hypertextový odkaz je viditeľné.

Vytvorte novú .NET 9 konzolovú aplikáciu s nasledujúcim kódom:







Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com