{"id":21367440,"url":"https://github.com/redone06/bytebankarray","last_synced_at":"2025-07-16T19:36:33.838Z","repository":{"id":156471175,"uuid":"547314277","full_name":"RedONe06/ByteBankArray","owner":"RedONe06","description":"📘 Curso Alura - C#: Trabalhando com arrays e coleções","archived":false,"fork":false,"pushed_at":"2022-10-27T14:01:59.000Z","size":181,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T08:11:31.490Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RedONe06.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-07T13:32:01.000Z","updated_at":"2022-10-07T13:33:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"5b908e84-4c9d-403f-aa5d-2edb0f4fc39c","html_url":"https://github.com/RedONe06/ByteBankArray","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RedONe06/ByteBankArray","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedONe06%2FByteBankArray","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedONe06%2FByteBankArray/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedONe06%2FByteBankArray/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedONe06%2FByteBankArray/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RedONe06","download_url":"https://codeload.github.com/RedONe06/ByteBankArray/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedONe06%2FByteBankArray/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265534911,"owners_count":23783916,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T07:19:13.650Z","updated_at":"2025-07-16T19:36:33.830Z","avatar_url":"https://github.com/RedONe06.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![image](https://user-images.githubusercontent.com/98191980/194566349-1fda1152-4e33-449b-81e4-a036c1d2758b.png)\n\n\u003cimg src=\"https://img.shields.io/static/v1?label=by\u0026message=Alura\u0026color=blue\u0026style=for-the-badge\"\u003e \u003cimg src=\"https://img.shields.io/static/v1?label=Tech\u0026message=.NET 6.0\u0026color=7B68EE\u0026style=for-the-badge\u0026logo=.NET\"\u003e \u003cimg src=\"https://img.shields.io/static/v1?label=Tech\u0026message=C%23\u0026color=7B68EE\u0026style=for-the-badge\u0026logo=csharp\"\u003e\n\n## O sistema\nO projeto se trata de um CRUD em C# utilizando diversas coleções disponibilizadas pelo sistema .NET. O tema do projeto é um atendimento ao cliente em um banco, BiteBank, onde pode-se fazer a criação e manipulação de contas correntes com as informações pessoais dos clientes.\n\n![Menu de atendimento](https://user-images.githubusercontent.com/98191980/198300688-1349de07-3075-4dd4-a81c-30561a2384ec.png)\n\n### Funcionalidades e características\n- O programa inicia com 3 contas correntes por default;\n- Possui um menu interativo para decidir as opções de atendimento;\n- É possível fazer 3 tipos diferentes de pesquisas por contas: por número da conta, por cpf do titular e pelo o número da agência. No projeto constam 3 formas diferentes de mótodos de consulta: 2 métodos por LINQ (Language Integrated Query), sendo eles por métodos de consulta (semelhante a SQL) e pelos próprios métodos LINQ (por expressão lambda), e por fim o método de iteração de lista (for, foreach);\n- Apresenta a opção de listar as contas existentes, feita através do método ToString() das contas correntes;\n- Ordena as contas criadas através do método Sort() na lista de contas - que para ser implementado foi necessário transformar os objetos da lista (contas correntes) em uma interface comparável, IComparable\u003c\u003e;\n- Remove contas por métodos de List\u003c\u003e;\n- Lista contas por ToString() de conta corrente;\n- Tratamento de excessão personalizado para casos de inputs inválidas (não numéricas ou fora do escopo);\n- Por fim, cadastra contas com números únicos a partir da coleção GUID;\n\n\n\n## Resumo das aulas\n\n### Array\n- O que são arrays e como esta estrutura de dados é útil para agruparmos em uma única referência vários valores de determinado tipo;\n- As sintaxes básicas de definição e inicialização de um array usando C#, entendendo as formas mais utilizadas e simples, que podem conferir dinamismo ao se trabalhar com arrays;\n- A percorrer um array a fim de manipulá-lo para inserção de valores em seus índices e também para recuperar uma informação armazenada em determinada posição do array;\n- Sobre a classe Array, que é a superclasse da qual todos os arrays de C# herdam seus atributos e propriedades.\n\n### Array de contas correntes\n- A utilizar a encapsular a manipulação de um array de objetos em um classe a fim de facilitar a manutenção de uma estrutura de objetos;\n- Como utilizar um indexador, que permite que uma classe desenvolvida por você possa ser indexada como um array;\n- A utilizar a collection ArrayList, uma classe que permite trabalhar com coleções de objetos e já implementa uma série de métodos para manipulação de um array de objetos.\n\n### ListT\n\n- A utilizar uma lista genérica de objetos utilizando a classe List, que permite a tipagem de uma lista de objetos e que permite a redução da probabilidade de erros de conversão para a manipulação da lista;\n- Sobre métodos disponíveis pela classe List que dinamiza a manipulação de lista de objetos;\n- A criar uma classe para tratar as excessões da aplicação e que se faz necessária uma vez que a aplicação em desenvolivmento tem uma interface de interação com o usuário;\n\n### Manipulando a lista\n\n- Sobre a interface IComparable, que deve ser implementada pelo tipo de classe que irá tipificar uma lista genérica para usarmos o método Sort;\n- Como utilizar o método Remove da classe lista para remoção de um elemento do array de objetos;\n- Como implementar a interface da forma tipada IComparable e o método CompareTo para fazer a ordenação da lista de contas correntes;\n- A criar um algoritmo de busca simples para encontrar um objeto no array de contas correntes;\n\n### LINQ\n\n- A utilizar o método de extensão Where aplicado diretamente a lista de objetos, que permite a simplificação da busca de um elemento na lista;\n- Sobre a configuração no arquivo .Csproj que configura o projeto ´para alertar sobre operações que podem retornar um valor nulo para um objeto;\n- A usar a sintaxe de consulta do LINQ que torna o código bem legível e de fácil entendimento;\n- Como utilizar a estrutura Guid do C# para gerar uma sequência alfanumérica de forma aleatória no sistema;\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredone06%2Fbytebankarray","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredone06%2Fbytebankarray","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredone06%2Fbytebankarray/lists"}