Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 2582|Отговор: 1

[Източник] .NET/C# умело избира индекси във Foreach

[Копирай линк]
Публикувано в 1.02.2024 г. 20:26:18 ч. | | | |
Въвеждането

Циклите for и foreach са едни от най-полезните конструкции в инструментарията на C# разработчиците.
Според мен повторяването на колекция е по-удобно, отколкото в повечето случаи.
Работи с всички типове колекции, включително неиндексируеми (като , и не изискват достъп до текущия елемент чрез индекса).
Но понякога наистина е необходим индекс на текущия елемент; Сблъсках се с този проблем преди време, когато използвах Foreach за преминаване през колекции в разработка. Обикновено използва един от следните модели:


Винаги ме е дразнило; Не можем ли да получим както стойности, така и индекси?
Има просто решение с Linq и кортежи.

Решение 1:

Просто напишете метод за разширение по следния начин:

Моля, въведете горния код в следното пространство от имена:

Метод на извикване:

Забележка: Зад колекциятаWithIndex();

Решение 2:

Ако намирате метода за разширение за тромав, можете да използвате и Solution 2

Готово е, има малко влияние върху производителността, можете да наблюдавате употребата при поискване!!





Предишен:Nginx деактивира TLSv1.0 и TLSv1.1 невалидни решения
Следващ:Oracle заявки за полето с пълни главни букви, проблеми
 Хазяин| Публикувано в 24.02.2024 г. 17:00:44 ч. |
Колекции от .NET 9 двойкиДобавен е методът за разширение Index, можете да получите индекса директно, вижте на:Входът към хиперлинк е видим.

public static System.Collections.Generric.IEnumerable<(int Index, TSource Item)><TSource> Index (този източник System.Collections.Generric.IEnumerable<TSource>);

Изтеглете предварителния преглед на VS 2022 от:Входът към хиперлинк е видим.

.NET 9.0 Preview изтегляне:Входът към хиперлинк е видим.

Създайте ново конзолно приложение за .NET 9 със следния код:







Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com