Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 2582|Resposta: 1

[Fonte] .NET/C# escolhe de forma inteligente índices em foreach

[Copiar link]
Publicado em 01/02/2024 20:26:18 | | | |
Introdução

Os ciclos for e foreach são uma das construções mais úteis na caixa de ferramentas para desenvolvedores de C#.
Na minha opinião, iterar sobre uma coleção é mais conveniente do que na maioria dos casos.
Ele funciona com todos os tipos de coleção, incluindo os não indexáveis (como , e não requerem acesso ao elemento atual através do índice).
Mas às vezes, um índice do item atual é realmente necessário; Tive esse problema há algum tempo quando usei o foreach para explorar coleções em desenvolvimento. Isso normalmente utiliza um dos seguintes padrões:


Isso sempre me irritou; Não podemos obter tanto valores quanto índices?
Existe uma solução simples com Linq e tuplas.

Solução 1:

Basta escrever um método de extensão assim:

Por favor, introduza o código acima no seguinte namespace:

Método de chamada:

Nota: Por trás da coleçãoWithIndex();

Solução 2:

Se você achar o método de extensão complicado, também pode usar a Solução 2

Está feito, tem um pequeno impacto no desempenho, você pode observar o uso sob demanda!!





Anterior:O Nginx desativa soluções inválidas do TLSv1.0 e TLSv1.1
Próximo:Consultas Oracle retornam problemas de campo full caps
 Senhorio| Publicado em 24/02/2024 17:00:44 |
Coleções de pares .NET 9Adicionado o método de extensão de índice, você pode obter o índice diretamente, consulte:O login do hiperlink está visível.

Índice estático público System.Collections.Generic.IEnumerable<(int Index, TSource Item)><TSource> Index (esta fonte System.Collections.Generic.IEnumerable<TSource>);

Baixe a prévia do VS 2022 em:O login do hiperlink está visível.

.NET 9.0 Preview Download:O login do hiperlink está visível.

Crie um novo aplicativo de console .NET 9 com o seguinte código:







Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com