Utilizando IEnumerable
Veja o que vai acontecer
Olá pessoal, hoje eu vou falar e mostrar um pouco sobre como pegar os valores de um IEnumerable em forma de propriedade. Além de mostrar as várias maneiras de utilizar o retorno desse tipo.
O grande problema hoje é a forma de pegar os dados, a melhor maneira de pegar os dados é utilizando propriedades. Mas quando um método retorna o IEnumerable puro, fica difícil pegar as propriedades, isso porque se você clicar o ponto não aparece as propriedades do retorno.
O IEnumerable pode ser retornado de forma pura/simples e personalizado. A forma personalizada é necessário criar uma classe com Get e Set para que funcione. Veja a listagem 1.
Listagem 1 – Exemplos de IEnumerable
Primeiro exemplo:
- public IEnumerable getUsuario();
Segundo exemplo:
- public IEnumerable getUsuario();
Os dois exemplos mostram que os nomes dos métodos são iguais, mas os retornos são diferentes. Diferentes porque o primeiro possui o retorno com a classe de usuário e o segundo só possui o IEnumerable. O primeiro exemplo mostra que existe uma classe de usuário que vai ser preenchida e o retorno possui propriedades dessa classe. O segundo exemplo, não mostra as propriedades da classe, isso porque não tem classe retornada junto do IEnumerable. Se quiser pegar as propriedades, é necessário utilizar um getType e tudo mais, mostrado na listagem 3.
O IEnumerable pode também preencher um GridView sem qualquer problema. Basta fazer o datasource e depois o databind(). Isso não é problema pra quem utiliza esse retorno para preencher GridView.
Um método simples utilizando o IEnumerable com propriedades está na listagem 2.
Listagem 2 – IEnumerable com propriedades
public IEnumerable GetUsuarios()
{
return db.Usuarios.AsEnumerable();
}
public class Usuario
{
[Key]
public Int32 Id { get; set; }
public String Nome { get; set; }
}
Note que a listagem 2 mostra duas classes, uma com o método buscando no banco de dados e outra classe com propriedades Id e Nome. Essa junção é uma “mágica” que o framework .NET faz e o desenvolvedor não precisa se preocupar.
O próximo exemplo mostra a listagem 3 que, o retorno não tem propriedades.
Listagem 3 – Retornando IEnumerable puro
public IEnumerable GetUsuarios()
{
return db.Usuarios.AsEnumerable();
}
//Consumindo o método
IEnumerable _retornoIEnumerable = new classe().GetUsuarios();
foreach (var item in _retornoIEnumerable)
{
string Id = item.GetType().GetProperty("Id").GetValue(item, null).ToString();
string Nome = item.GetType().GetProperty("Nome").GetValue(item, null).ToString();
}
Note que na listagem 3, o método retorna apenas IEnumerable. Logo após o método, existe o consumo pegando os valores como propriedades. Basta fazer um Foreach e dentro dele tem o GetType(), nome da propriedade GetProperty(“Id”) e depois o valor usando o GetValue. Dessa maneira você consegue pegar o valor e armazenar em variáveis dentro do Foreach.
É lógico que a maioria dos desenvolvedores utilizam o IEnumerable da forma mostrada na listagem 2, mas quando não existe propriedades e não tem jeito de criá-las, existe outra maneira de pegar os valores retornados no seu select mostrado na listagem 3.
Esse foi um artigo ou dica bem rápida para que entenda e resolva sua dúvida referente a utilização de IEnumerable. Espero que tenha gostado e qualquer dúvida pode entrar em contato pelo site www.mauriciojunior.org.
Subscribe ecode10.com
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.
You can cancel anytime.
Log In