Novidades do .NET 8: selecionando itens aleatórios de Arrays e Spans
Em um artigo anterior neste blog demonstrei o uso do método Shuffle com a classe Random (namespace System), sendo que o mesmo oferece uma alternativa para “embaralhar” os itens que formam um array ou span de maneira aleatória:
Novidades do .NET 8: alterando randomicamente a ordem de itens em Arrays e Spans
Nesta nova postagem dou continuidade à série de novidades do .NET 8, abordando agora a utilização do método GetItems com Random (a partir da propriedade Shared). Esta nova funcionalidade permite que um ou mais itens de um array ou instância de ReadOnlySpan<T> sejam escolhidos aleatoriamente.
A listagem a seguir exemplifica isto:
- GetItems foi empregado com as variáveis sugestoesCidades (um array de strings - a partir da linha 11) e sugestoesPratos (uma instância do tipo ReadOnlySpan<string> - a partir da linha 26);
- - Os loops for escolherão um, dois e finalmente três itens de sugestoesCidades e sugestoesPratos;
- O retorno produzido por GetItems será um array, havendo inclusive a possibilidade da presença de itens repetidos neste resultado.
Uma primeira execução desta aplicação a partir do Visual Studio 2022 produziu o seguinte resultado (em que se observam até itens repetidos para sugestoesCidades):
Numa segunda execução não ocorreram repetições a cada escolha em sugestoesCidades e sugestoesPratos:
Este exemplo foi disponibilizado no GitHub:
https://github.com/renatogroffe/DotNet8-ConsoleApp-RandomGetItems
Caso achem útil esta solução, peço por favor um ⭐️ no repositório apoiando. Fica também o convite para que vocês me sigam lá no GitHub!
E concluo este artigo com um convite…
Acompanhe neste novo evento ONLINE e GRATUITO no Canal .NET dicas, truques e alternativas úteis para o desenvolvimento Back-End e de APIs REST com .NET 7, C#, ASP.NET Core e Azure Functions. Ao longo da apresentação será coberto o uso de diferentes frameworks, serviços na nuvem, mensageria e boas práticas de forma a facilitar e tornar mais dinâmica a implementação de soluções baseadas na plataforma .NET no seu dia a dia.
Teremos também novidades do .NET 8 e C# 12 demonstradas na prática!
Quando: 17/07/2023 (segunda) a partir das 21:00 — horário de Brasília
Faça sua inscrição em:
https://bit.ly/live-backend-dotnet-jul-2023