Módulo/Capítulo Arrays C#

10/07/2010

Pessoal boa tarde,

Faz tempo que não posto aqui, estou lendo o livro C# como programar, e venho anotando as partes mais importantes e quero compartilhar, como segue abaixo:

Arrays podem ser inicializados conforme exemplos abaixo:
Int [] x;
x= new int[10];

int [] y = { 1,2,3,4,5 };

const int ARRAY_SIZE = 10;
int [] z;
z = new int [ ARRAY_SIZE ];
Obs: Variáveis utilizando a palavra chave const devem ser declaradas de imediato e depois disso não pode mais modificar o seu valor.
Abaixo um exemplo de como fazer para incrementar o valor de um array do indice.
Lembrando que os tipos de dados suportados em array sempre são iniciados com valores default, 0 para int, null para string, etc.
++nome_array[nome_do_segundo_array[ controlador ] ];
Quando ocorre uma referência de array inválida, o C# gera uma exceção IndexOutOfRangeException.

Para passar o array como argumento em algum método, faça como o exemplo abaixo:

int[] array = new int[15];

Nome_do_metodo( array );

Notas:

Para passar um elemento de array para um método, use o nome de índice do elemento de arrray como argumento na chamada ao método.

Existem dois tipos de arrays multidimensionais, retangular e irregular.

Declaração de uma array retangular:

int [,] array1 = new int [,] {{ 1,2,3,}, { 4,5,6} };

Declaração de uma array irregular:

int[][] array2 = new int[3][];
array2[0] = new int[] { 1,2 };
array2[1] = new int[] {3};
array2[2] = new int[] {4,5,6};


Tipos de Join

23/08/2009

Pessoal,

 

Estou aqui de novo, para finalizarmos ou pelo menos ampliarmos nosso conhecimento referente a join.

Ficou faltando no ultimo post falar sobre as diferenças dos join.

São eles:

Left Outer Join

Right Outer Join

Full Outer Join

Cross Join

Começaremos novamente na prática, usando o mesmo banco e tabelas.

 select 

 Customers.companyname 

from

 customers

  inner join Orders on Customers.CustomerID = Orders.CustomerID

order by customerID

 Fazemos esse select e recebemos o seguinte resulado:

ID                           Company

ALFKI                    Alfreds Futterkiste

ANATR                  Ana Trujillo Emparedados y helados

ANTON                 Antonio Moreno Taquería 

 Vemos que para toda empresa tem um CustomerID, vou fazer o delete de um orderID qualquer da tabela.

 delete from orders where OrderID = ‘11077’

Agora identificamos que para uma empresa não vai ter  CustomerID já que apagamos a linha inteira.
Fiz o order by CustomerID justamente para aparecer NULL, você vai entender melhor quando executarmos ele agora.
Agora usando o inner join, ele faz a junção das 2 tabelas, tem que existir um CustomerID para um CompanyName percebem?
Usando Left Outer Join não precisa de existir o campo da esquerda para cada campo da direita(grosseiramente dizendo).

Vamos fazer um teste então?
Veja o que recebemos:

 select distinct top 3

                        Orders.CustomerID       ,

                        Customers.companyname  

from customers

            left outer join Orders

            on Customers.CustomerID  = Orders.CustomerID

order by customerID

NULL     FISSA Fabrica Inter. Salchichas S.A.

NULL     Paris spécialités

ALFKI    Alfreds Futterkiste

 Perceberam a diferença?
Left Outer  Join a seqüência dos campos depois do “on” faz diferença.
Right outer Join é a mesma coisa porem à direita. Não precisa ter valores ligados na direita pode ser null.
Full Outer Join ele verifica do lado esquerdo e direito. Seria o Right e Left juntos.

Por exemplo, a primeira linha poderia ser:

NULL     FISSA Fabrica Inter. Salchichas S.A.

E a segunda linha:

ANATR                  NULL

 No Cross Join, ele liga cada  CustomerID para cada CompanyName.

Segue:

 select  

Orders.CustomerID       ,

                        Customers.companyname  

from customers

            cross join Orders

 ALFKI    Alfreds Futterkiste

ALFKI    Alfreds Futterkiste

ALFKI    Alfreds Futterkiste

ALFKI    Alfreds Futterkiste

ALFKI    Alfreds Futterkiste

ALFKI    Alfreds Futterkiste

ANATR  Alfreds Futterkiste

ANATR  Alfreds Futterkiste

 Perceberam? Esse é pouco usada juntamente com Full outer Join.

Segue assim então minha pequena explicação referente as diferenças de Join.

Espero que tenha ajudado.

 Atenciosamente, 

Renan Henrique


Hello world!

29/07/2009

Bem vindo,

Pessoal estarei postando ao longo dos dias referente aos meus aprendizados na area de informática em geral.