Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 2582|Ответ: 1

[Источник] .NET/C# умело выбирает индексы для каждого

[Скопировать ссылку]
Опубликовано 01.02.2024 20:26:18 | | | |
Знакомство

Циклы for и foreach — одна из самых полезных конструкций в наборе разработчиков C#.
На мой взгляд, повторять коллекцию удобнее, чем в большинстве случаев.
Он работает со всеми типами коллекций, включая неиндексируемые (например, , и не требуют доступа к текущему элементу через индекс).
Но иногда действительно нужен указатель текущего элемента; Я столкнулся с этой проблемой некоторое время назад, когда использовал Foreach для прохождения коллекций в процессе разработки. Обычно используется одна из следующих схем:


Это всегда меня раздражало; Разве мы не можем получить и значения, и индексы?
Существует простое решение с линк и кортежами.

Решение 1:

Просто напишите метод расширения вот так:

Пожалуйста, введите вышеуказанный код в следующее пространство имён:

Метод вызова:

Примечание: За коллекциейWithIndex();

Решение 2:

Если метод расширения кажется вам громоздким, вы также можете воспользоваться Solution 2

Это сделано, это немного влияет на производительность, вы можете наблюдать за использованием по запросу!!





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

публичный статический System.Collections.Generric.IEnumerable<(int Index, TSource Item)><TSource> Index (этот источник System.Collections.Generric.IEnumerable<TSource>);

Скачайте превью VS 2022 по адресу:Вход по гиперссылке виден.

Скачать превью .NET 9.0:Вход по гиперссылке виден.

Создайте новое консольное приложение .NET 9 с следующим кодом:







Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com