none
Ajuda! List<>c# RRS feed

  • Pergunta

  • Pessoal como pego um obj de uma LIst?

    abaixo a List<>

    ah! ela esta povoando meu grid.

      List<EntradaModel> listaEntradas = new List<EntradaModel>();
                    gridEntrada.DataSource = new EntradaBLL().ListEntradas(dt1, dt2);


    • Editado TiagoJesusTJS quarta-feira, 16 de março de 2016 04:06 editei por que tinha ficado confuso o que eu precisava
    quarta-feira, 16 de março de 2016 03:29

Respostas

  • Bom dia.

    Vi agora a edição da thread.

    Para pegar um item da lista tu podes fazer de várias formas, como já dito, tu podes fazer uma iteração na lista, porém com LINQ (novamente), tu podes fazer de forma mais fácil:

    var item = listaEntradas.FirstOrDefault(item => item.Id == idBusca);

    Caso saibas o index do item, podes também simplesmente pegar o item do index indicado:

    var item = listaEntradas[3];

    Att., Rafael Simor

    • Sugerido como Resposta Antero Marques quarta-feira, 16 de março de 2016 16:30
    • Marcado como Resposta Marcos SJ quarta-feira, 16 de março de 2016 16:51
    quarta-feira, 16 de março de 2016 14:32
  • Se tu queres somar o valor de todos itens da lista, tu podes fazer facilmente com LINQ:

    List<EntradaModel> listaEntradas = new List<EntradaModel>();
                    gridEntrada.DataSource = new EntradaBLL().ListEntradas(dt1, dt2);
    
    var sum = listaEntradas.Sum(x => x.Vdosocio);

    Se não for isso, explique melhor o que tu entendes por "tirar um objeto de dentro da lista", pois poderia significar diveras situações.


    Att., Rafael Simor

    • Marcado como Resposta TiagoJesusTJS quinta-feira, 17 de março de 2016 02:38
    quarta-feira, 16 de março de 2016 04:10
  • Tiago, você pode da seguinte forma:

    foreach(EntradaModel item in listaEntradas)
    {
        // aqui você vai visualizar item a item da sua lista.
    }
    
    // se quiser o total de itens
    int total = listaEntradas.Count;
    
    // se quiser o total por um filtro
    int totalPorFiltro = listaEntradas.Count(obj=>obj.ATRIBUTO == FILTRO);

    • Marcado como Resposta TiagoJesusTJS sexta-feira, 25 de março de 2016 22:22
    quarta-feira, 16 de março de 2016 12:43
  • Consegui!!!!!!! exatamente o que eu desejava :D
     var emp = new EntradaBLL().Lista_De_pesquisa();
                foreach (EntradaModel rowE in emp)
                {
                    var obj = new EntradaModel();
                    obj.RazaoSocial = rowE.RazaoSocial.ToString();
                    obj.Telefone = rowE.Telefone.ToString();
                 }
     
    • Marcado como Resposta TiagoJesusTJS sexta-feira, 25 de março de 2016 18:50
    sexta-feira, 25 de março de 2016 18:50

Todas as Respostas

  • Boa noite.

    Defina "acumular".

    Para pegar o valor de todas linhas e somar (que imagino ser o problema), tu podes fazer assim:

    decimal vTotal = 0;
    
    while (reader.Read())
    {
        // após preencher as propriedades
        vTotal += ent.Vdosocio;
    }
    Depois tu podes fazer o que quiser com esse valor "vTotal".

    Att., Rafael Simor

    quarta-feira, 16 de março de 2016 03:52
  • isso esta tranquilo.... mas como eu pego isso da List?

    List<EntradaModel> listaEntradas = new List<EntradaModel>();

    como tiro um objto daqui de dentro dessa lista?

    quarta-feira, 16 de março de 2016 04:03
  • Se tu queres somar o valor de todos itens da lista, tu podes fazer facilmente com LINQ:

    List<EntradaModel> listaEntradas = new List<EntradaModel>();
                    gridEntrada.DataSource = new EntradaBLL().ListEntradas(dt1, dt2);
    
    var sum = listaEntradas.Sum(x => x.Vdosocio);

    Se não for isso, explique melhor o que tu entendes por "tirar um objeto de dentro da lista", pois poderia significar diveras situações.


    Att., Rafael Simor

    • Marcado como Resposta TiagoJesusTJS quinta-feira, 17 de março de 2016 02:38
    quarta-feira, 16 de março de 2016 04:10
  • Tiago, você pode da seguinte forma:

    foreach(EntradaModel item in listaEntradas)
    {
        // aqui você vai visualizar item a item da sua lista.
    }
    
    // se quiser o total de itens
    int total = listaEntradas.Count;
    
    // se quiser o total por um filtro
    int totalPorFiltro = listaEntradas.Count(obj=>obj.ATRIBUTO == FILTRO);

    • Marcado como Resposta TiagoJesusTJS sexta-feira, 25 de março de 2016 22:22
    quarta-feira, 16 de março de 2016 12:43
  • Tiago

    Já tentou fazer um for com a quantidade de registro da lista para pegar dado por dado? 

    Se fosse com IEnumerable seria até mais difícil mas não impossível.

    Veja os artigos abaixo:

    http://www.macoratti.net/10/02/c_list1.htm

    https://www.caelum.com.br/apostila-csharp-orientacao-objetos/trabalhando-com-listas/#19-2-exercicios


    Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.

    Mauricio Junior - Comunidade www.ecode10.com

    quarta-feira, 16 de março de 2016 14:24
  • Bom dia.

    Vi agora a edição da thread.

    Para pegar um item da lista tu podes fazer de várias formas, como já dito, tu podes fazer uma iteração na lista, porém com LINQ (novamente), tu podes fazer de forma mais fácil:

    var item = listaEntradas.FirstOrDefault(item => item.Id == idBusca);

    Caso saibas o index do item, podes também simplesmente pegar o item do index indicado:

    var item = listaEntradas[3];

    Att., Rafael Simor

    • Sugerido como Resposta Antero Marques quarta-feira, 16 de março de 2016 16:30
    • Marcado como Resposta Marcos SJ quarta-feira, 16 de março de 2016 16:51
    quarta-feira, 16 de março de 2016 14:32
  • O C# te dá uma série de opções para iterar uma coleção do tipo List<T> (Lista parametrizada genérica).

    Com laço e acesso via indexação:

    var listaNomes = new List<string>();
    
    for(int x = 0; x <= listaNome.Count() - 1 ; x++){
        Console.WriteLine(listaNome[x]);
    }

    Com laço de objetos:

    var listaNomes = new List<string>();
    
    foreach(string nome in listaNomes){
          Console.WriteLine(nome);
    }

    Via LINQ (Consulta Integrada à Linguagem):

        class Customer
        {
            public string Nome { get; set; }
            public int Idade { get; set; }
    
            public Customer(string Nome, int Idade)
            {
                this.Nome = Nome;
                this.Idade = Idade;
            }
        }

     class Program
        {
            static void Main(string[] args)
            {
                var Mary = new Customer("Mary", 25);
                var John = new Customer("John", 29);
                var Bob = new Customer("Bob", 22);
                List<Customer> Customers = new List<Customer> { Mary, John, Bob };
    
                var q1 = from i in Customers
                        where i.Idade > 22
                        select i;
    
                foreach (var customer in q1)
                {
                    Console.WriteLine("Nome: {0}, Idade: {1}", customer.Nome, customer.Idade);
                }
                //exibe mary e john
    
                var q2 = Customers.Where(c => c.Idade > 22);
    
                foreach (var customer in q2)
                {
                    Console.WriteLine("Nome: {0}, Idade: {1}", customer.Nome, customer.Idade);
                }
                //exibe mary e john
    
    
                var qSingle = Customers.Single(c => c.Nome == "Mary");
                Console.WriteLine("Nome: {0}, Idade: {1}", qSingle.Nome, qSingle.Idade);
                //exibe mary
    
    
                Console.ReadKey();
                
            }
        

    C# is life C# is love  ;D

    Abraços!


    quarta-feira, 16 de março de 2016 14:52
  • Consegui!!!!!!! exatamente o que eu desejava :D
     var emp = new EntradaBLL().Lista_De_pesquisa();
                foreach (EntradaModel rowE in emp)
                {
                    var obj = new EntradaModel();
                    obj.RazaoSocial = rowE.RazaoSocial.ToString();
                    obj.Telefone = rowE.Telefone.ToString();
                 }
     
    • Marcado como Resposta TiagoJesusTJS sexta-feira, 25 de março de 2016 18:50
    sexta-feira, 25 de março de 2016 18:50