UPPERCASE DevelUPPER Training

Deixe um comentário

A UPPERCASE Consultoria está proporcionando oportunidade interessante para estudantes de informática. Trata-se do projeto UPPERCASE DevelUPPER Training, que abrirá as portas do mercado de trabalho de tecnologia para os iniciantes da profissão.

O programa UPPERCASE DevelUPPER Training é uma iniciativa da UPPERCASE com o objetivo de prover capacitação profissional para jovens talentos, proporcionando adicionalmente a oportunidade de vivenciar o dia a dia de nossas equipes de projeto.

Fonte: UPPERCASE

Saiba mais:

Anúncios

LINQ Extensions

2 comentários

Já sabemos que consultas LINQ podem retornar coleções de vários tipos, entre elas IQueryable. Essa interface herda diretamente de IEnumerable e, por isso, disponibiliza  alguns Extension Methods que, associados a utilização de Lambdas Expressions, facilitam muito a nossa vida no trabalho com querys LINQ. A idéia desta sequência de posts é demonstrar o uso de alguns desses Extension Methods na prática.

OBS 1: Vou publicando aos poucos, por isso, diariamente teremos novidades neste artigo.

OBS 2: Para os exemplos, utilizarei como source várias coleções de objetos, conforme mostra o código a seguir:

// Classe Pessoa
public class Pessoa
{
    public int ID { get; set; }
    public string Nome { get; set; }
    public int Idade { get; set; }
    public Sexo Sexo { get; set; }
    public List<Animal> Animais { get; set; }
}

// Enumerador para Sexo
public enum Sexo
{
    Masculino,
    Feminino
}

// Classe Animal
public class Animal
{
    public int ID { get; set; }
    public Especie Especie { get; set; }
    public string Nome { get; set; }
    public Pessoa Dono { get; set; }
}

// Enumerador para Especie
public enum Especie
{
    Cachorro,
    Gato,
    Piriquito
}

// Criando o array de Pessoas
Pessoa[] Pessoas =
{
    new Pessoa
    { ID=1, Nome="José", Idade=28, Sexo=Sexo.Masculino },
    new Pessoa
    { ID=2, Nome="Antonio", Idade=22, Sexo=Sexo.Masculino},
    new Pessoa
    { ID=3, Nome="Maria", Idade=20, Sexo=Sexo.Feminino },
    new Pessoa
    { ID=4, Nome="Fernanda", Idade=32, Sexo=Sexo.Feminino },
    new Pessoa
    { ID=5, Nome="João", Idade=32, Sexo=Sexo.Masculino }
};
Animal[] Animais = CriarArrayDeAnimais(Pessoas);
foreach (Pessoa pessoa in Pessoas)
    pessoa.Animais = Animais.Where(a => a.Dono.ID == pessoa.ID).ToList();

// Segundo array de Pessoas
Pessoa[] OutrasPessoas =
{
    new Pessoa
    { ID=6, Nome="Josefina", Idade=12, Sexo=Sexo.Feminino },
    new Pessoa
    { ID=7, Nome="Antonieta", Idade=25, Sexo=Sexo.Feminino },
    new Pessoa
    { ID=8, Nome="Mário", Idade=22, Sexo=Sexo.Masculino },
};

// Array de Animais
Animal[] Animais =
{
    new Animal
    { ID=1, Especie=Especie.Cachorro, Nome="Fred", Dono=Pessoas[0] },
    new Animal
    { ID=2, Especie=Especie.Cachorro, Nome="Billy", Dono=Pessoas[0] },
    new Animal
    { ID=3, Especie=Especie.Cachorro, Nome="Pandora", Dono=Pessoas[1] },
    new Animal
    { ID=4, Especie=Especie.Cachorro, Nome="Teny", Dono=Pessoas[1] },
    new Animal
    { ID=5, Especie=Especie.Cachorro, Nome="Cindy", Dono=Pessoas[1] },
    new Animal
    { ID=6, Especie=Especie.Piriquito, Nome="Crodô", Dono=Pessoas[2] },
    new Animal
    { ID=7, Especie=Especie.Piriquito, Nome="Frodo", Dono=Pessoas[2] },
};

Vamos lá, então!

Clique sobre o comando para ver detalhes:

Código fonte

O download de todos os códigos pode ser feito aqui.

Saiba mais:

LINQ Extensions: Where

Deixe um comentário

(OBS: Este post é continuação do artigo LINQ Extensions)

Where: Filtra a coleção com base na expressão lambda.

// Where: Filtra a coleção com base na expressão lambda.
var queryWhere = Pessoas.Where(p => p.Sexo == Sexo.Feminino);
Console.WriteLine("Pessoas do sexo Feminino:");
foreach (Pessoa p in queryWhere)
    Console.WriteLine(p.Nome);
// Resultado no console:
// Pessoas do sexo Feminino
// Maria
// Fernanda

Saiba Mais:

LINQ Extensions: Union

Deixe um comentário

(OBS: Este post é continuação do artigo LINQ Extensions)

Union: Provoca a união entre duas coleções, ignorando os registros repetidos.

// Union: Provoca a união entre duas coleções,
//        ignorando os registros repetidos.
var queryUnion = Pessoas.Union(OutrasPessoas);
foreach (Pessoa p in queryUnion)
    Console.WriteLine(p.Nome);
// Resultado no console:
// José
// Antonio
// Maria
// Fernanda
// João
// Josefina
// Antonieta
// Mário

Saiba Mais:

LINQ Extensions: ToList

Deixe um comentário

(OBS: Este post é continuação do artigo LINQ Extensions)

ToList: Converte o objeto para o tipo List.

// ToList: Converte o objeto para o tipo List.
List<Pessoa> listaDePessoas = Pessoas.ToList();
foreach (Pessoa p in listaDePessoas)
    Console.WriteLine(p.Nome);
// Resultado no console:
// José
// Antonio
// Maria
// Fernanda
// João

Saiba Mais:

LINQ Extensions: ToDictionary

Deixe um comentário

(OBS: Este post é continuação do artigo LINQ Extensions)

ToDictionary: Converte o objeto para o tipo Dictionary.

// ToDictionary: Converte o objeto para o tipo Dictionary.
Dictionary<int, Pessoa> dic = Pessoas.ToDictionary(p => p.ID);
foreach (var item in dic)
    Console.WriteLine("Nome: {0} | Identificação: {1}", item.Value.Nome, item.Key);
// Resultado no console:
// Nome: José | Identificação: 1
// Nome: Antonio | Identificação: 2
// Nome: Maria | Identificação: 3
// Nome: Fernanda | Identificação: 4
// Nome: João | Identificação: 5

LINQ Extensions: ToArray

Deixe um comentário

(OBS: Este post é continuação do artigo LINQ Extensions)

ToArray: Converte o objeto para o tipo Array.

// ToArray: Converte o objeto para o tipo Array.
Pessoa[] Pessoas = ListaDePessoas.ToArray();
foreach (Pessoa p in Pessoas)
    Console.WriteLine(p.Nome);
// Resultado no console:
// José
// Antonio
// Maria
// Fernanda
// João

Older Entries