Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 2582|Odpověď: 1

[Zdroj] .NET/C# chytře vybírá indexy ve foreach

[Kopírovat odkaz]
Zveřejněno 01.02.2024 20:26:18 | | | |
Úvod

Smyčky for a foreach jsou jedny z nejužitečnějších konstrukcí v nástroji pro vývojáře v C#.
Podle mého názoru je iterace přes kolekci pohodlnější než ve většině případů.
Funguje se všemi typy kolekcí, včetně těch, které nejsou indexovatelné (například , a nevyžadují přístup k aktuálnímu prvku přes index).
Ale někdy je opravdu potřeba mít index aktuální položky; Na tento problém jsem narazil už před časem, když jsem používal foreach k procházení kolekcí během vývoje. Obvykle se používá jeden z následujících vzorů:


Vždycky mě to štvalo; Nemůžeme získat jak hodnoty, tak indexy?
Existuje jednoduché řešení s Linq a n-ticemi.

Řešení 1:

Stačí napsat metodu rozšíření takto:

Prosím, vložte výše uvedený kód do následujícího jmenného prostoru:

Způsob volání:

Poznámka: Za kolekcíWithIndex();

Řešení 2:

Pokud vám metoda prodloužení přijde nepraktická, můžete použít i Řešení 2

Je to hotové, má to malý vliv na výkon, můžete sledovat využití na vyžádání!!





Předchozí:Nginx deaktivuje neplatná řešení TLSv1.0 a TLSv1.1
Další:Oracle dotazy vracejí pole s plnými limity
 Pronajímatel| Zveřejněno 24.02.2024 17:00:44 |
.NET 9 párové kolekcePřidáno rozšíření indexu, index můžete získat přímo, viz na:Přihlášení k hypertextovému odkazu je viditelné.

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

Stáhněte si preview VS 2022 na:Přihlášení k hypertextovému odkazu je viditelné.

Náhled na .NET 9.0:Přihlášení k hypertextovému odkazu je viditelné.

Vytvořte novou .NET 9 konzolovou aplikaci s následujícím kódem:







Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com