As listas são uma ferramenta incrivelmente útil para armazenar dados diversos. Nós podemos pensar em uma lista como sendo um vetor capaz de armazenar quaisquer tipos de dados, mas com uma enorme vantagem: quando criamos um vetor, devemos informar o seu tamanho, mas nas listas isso não é necessário. Ela pode aumentar ou diminuir de tamanho automaticamente de acordo com a inserção ou remoção de conteúdo. Vamos começar com um exemplo bem simples de uma lista para armazenar números inteiros.
Add
Agora vejam como é simples inserir valores nela. Colocarei a seguinte sequência de números, cada um em uma posição: 16, 5, 23, 19.
Para fazer a utilização desses valores, o procedimento é semelhante. Vou exibir no Console o valor da segunda posição (sempre lembrando que começamos a contar a partir da posição zero).
Vou inserir o seguinte comando para a exibição dessa posição:
Console.WriteLine(minhaLista[2]);
Console.ReadLine();
Vejamos como será a saída:
A posição 2 solicitada é a terceira inserida, portanto a que contém o valor 23.
Contando os itens de uma Lista
Existe um comando extremamente útil que nos retorna um número inteiro contendo a quantidade de itens em uma Lista. Trata-se do Count. Ele pode ser útil, por exemplo, dentro de um comando For, para que saibamos quando determinar a condição de parada. Vejam como ficaria na prática:
A saída será:
Conseguimos imprimir na tela todos os objetos contidos em minhaLista.
Removendo um item da Lista
Para remover um objeto presente em uma Lista é muito simples. Só precisamos substituir o comando Add pelo Remove e passar como parâmetro o item que desejamos excluir.
A saída agora ficará:
Notem que na segunda impressão da lista, após o espaço em branco, o número 5 não está mais presente, o que significa que a remoção aconteceu com sucesso.
Removendo itens de uma Lista através do índice
Outra forma de remover um item de uma Lista é através do seu índice. Isso é feito de maneira bastante semelhante ao processo exibido acima, mas no lugar de Remove usaremos o RemoveAt, passando como parâmetro o índice que desejamos remover.
Vejamos a saída.
Notem que na segunda exibição da Lista o número 16 não está mais presente.
Invertendo os itens de uma Lista
Outro comando interessante é o Reverse, que inverte totalmente uma lista. Vejam sua utilização abaixo:
A execução agora terá a seguinte saída:
Agora a ordem dos elementos está invertida.
Descobrindo a média aritmética dos itens de uma Lista numérica
Outro comando interessante das listas é o Average, que nos retorna a média aritmética dos elementos presentes. Vamos testá-lo.
Agora vamos verificar a saída e a impressão da variável média:
Aí está o cálculo correto realizado pela função.
Procurando itens em uma Lista
Até aqui vimos como inserir e remover objetos de uma Lista, invertê-la, calcular a média e, como próximo parâmetro, vamos ver como procurar um valor na lista, que é uma função de grande importância.
O comando responsável por isso é o Contains. Vejam como funciona:
No exemplo acima pedi ao Contains que procure o elemento 5 dentro da Lista. Esse elemento existe, portanto devemos receber true como retorno. Vejamos se isso acontece:
De fato a função retornou True, pois o elemento existe. Se não existisse receberíamos False como retorno.
Descobrindo a posição de um elemento em uma Lista
Além de saber se um elemento existe, pode ser importante saber em qual posição da Lista ele se encontra. Essa informação também é fácil de ser conseguida através do método IndexOf. Sua sintaxe é:
Vejamos a execução:
O programa retornou a posição 3, que é, de fato, o local em que o item 19 se encontra. Apenas para ilustrar, segue abaixo a execução de um código com um número inexistente na Lista:
Ordenando itens de uma Lista
Outra opção que pode ser interessante é ordenar os itens de uma Lista, seja para exibi-los, gravar num banco, enfim, não importa. Seja lá qual for sua razão, se precisar ordenar os itens, deverá fazê-lo utilizando o método Sort. Segue abaixo um exemplo:
Vejam a saída com a lista já ordenada:
Aí está nossa Lista corretamente ordenada.
A última importante observação que faço é que dei todos os exemplos com números inteiros, mas poderíamos ter criado listas com outros tipos, por exemplo com números double:
E como é possível perceber na imagem acima, o comando Sort também pode ser aplicado a esse tipo de dado sem qualquer problema. Abaixo temos a impressão da nossa lista do tipo double devidamente ordenada:
Agora vamos criar uma lista do tipo String:
Nossa lista agora será:
Armazenando objetos em uma Lista
Como deu para perceber, as listas aceitam diversos tipos de itens. É possível, inclusive, criar uma classe qualquer e armazenar as instâncias dessa classe em uma lista. Criarei uma classe "Aluno" como exemplo:
Agora adicionarei instâncias dessa classe em uma lista, da seguinte forma:
Dessa forma teremos uma lista contendo objetos do tipo "Aluno".
Bem, estas foram, na minha opinião, as mais importantes funções relacionadas às Listas, mas existe muito mais! Basta dar uma olhada no IntelliSense do Visual Studio para perceber que se pode fazer praticamente de tudo com listas. Elas são realmente úteis!
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Música tema do Blanka

Até a primeira metade dos anos 90 era bastante comum que as trilhas sonoras dos games fossem criadas por mulheres e a responsável pelas músicas do clássico Street Fighter 2 foi Yoko Shimomura. Segundo ela, o ritmo "Tararirarin" da música tema do personagem Blanka, do Brasil, veio à sua cabeça enquanto ela estava no trem a caminho da Capcom.
Muitos aplicativos

Instalar vários aplicativos com o mesmo propósito, como editores de texto, reprodutores de músicas ou vídeos e até programas antívirus sobrecarregam o seu sistema operacional e ainda ocupam espaço desnecessário em seu HD. Tenha apenas um bom programa para cada função.
River Raid

O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.
Tetris

O título Tetris detém o recorde de jogo mais adaptado de todos os tempos. No total foram mais de 60 plataformas diferentes que receberam alguma versão do quebra-cabeças criado por Alexey Pajitnov. Conheça mais sobre este incrível jogo clicando aqui.
Civilization

A empresa Take-Two pagou à Infogrames mais de 22 milhões de dólares pelos direitos de Civilization, em novembro de 1994. Ainda sobre este título, Sid Meier, um dos seus fundadores, é o profissional da área dos games mais premiado em todo o mundo.










