none
Skip não funciona RRS feed

  • Pergunta

  • Pessoal, estou fazendo uma consulta, não no BD, mas em um foreach, e não estou conseguindo utiliza o Skip(), ele não está funcionando. Tem algum erro?

                var lista = new List<string>();
    
                foreach (Entity o in ec.Entities)
                {
                    html += "<tr><td>" + o.Attributes["title"].ToString() + "</td>";
    
                    html += "<td>" + o.Attributes["ticketnumber"].ToString() + "</td>";
    
                    string statusCode = "<td>" + ((OptionSetValue)o.Attributes["statuscode"]).Value.ToString() + "</td>";
                    if (((OptionSetValue)o.Attributes["statuscode"]).Value.ToString() == "1")
                    {
                        statusCode = "<td>Em andamento</td>";
                    }
                    else if (((OptionSetValue)o.Attributes["statuscode"]).Value.ToString() == "2")
                    {
                        statusCode = "<td>Suspenso<td>";
                    }
                    else if (((OptionSetValue)o.Attributes["statuscode"]).Value.ToString() == "3")
                    {
                        statusCode = "<td>Aguardando detalhes</td>";
                    }
                    else if (((OptionSetValue)o.Attributes["statuscode"]).Value.ToString() == "4")
                    {
                        statusCode = "<td>Pesquisando</td>";
                    }
    
                    html += statusCode;
    
                    string priorityCode = "<td>" + ((OptionSetValue)o.Attributes["prioritycode"]).Value.ToString() + "</td>";
    
                    if (((OptionSetValue)o.Attributes["prioritycode"]).Value.ToString() == "1")
                    {
                        priorityCode = "<td>Alta</td>";
                    }
                    else if (((OptionSetValue)o.Attributes["prioritycode"]).Value.ToString() == "2")
                    {
                        priorityCode = "<td>Média</td>";
                    }
                    else if (((OptionSetValue)o.Attributes["prioritycode"]).Value.ToString() == "3")
                    {
                        priorityCode = "<td>Baixa</td>";
                    }
    
                    html += priorityCode;
    
                    html += "<td>" + o.Attributes["createdon"].ToString() + "</td>";
    
                    html += "<td>" + o.Attributes["modifiedon"].ToString() + "</td></tr>";
    
                    lista.Add(html);
                }
    
                var query = (from q in lista
                            select q).Skip(3);
    
                foreach (var item in query)
                {
                    Grid.Text = item.ToString();
                }

    Tem outra forma de fazer isso? O que está errado?


    Não importa ao tempo o minuto que passa, mas o minuto que vem.

    sexta-feira, 9 de novembro de 2012 17:08

Respostas

  • Ola Filipe,

    O método Skip do modo como esta no código deveria pular os três primeiros registros.

    Segue aqui um exemplo:

                List<string> lista = new List<string>();
    
                lista.Add("1");
                lista.Add("2");
                lista.Add("3");
                lista.Add("4");
                lista.Add("5");
    
    
                var query = lista.Skip(3);
    
                foreach (var item in query)
                {
                    Console.WriteLine(item);
                }
    
                Console.Read();

    O Skip realmente não esta pulando os três primeiros registros? Isso é bastante estranho...Qual a quantidade de itens retornados pelo SKip e qual a quantidade de itens em "lista"?

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Data Platform Development
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    • Marcado como Resposta Filipemd_s terça-feira, 13 de novembro de 2012 14:25
    sexta-feira, 9 de novembro de 2012 23:15
    Moderador

Todas as Respostas

  • Ola Filipe,

    O método Skip do modo como esta no código deveria pular os três primeiros registros.

    Segue aqui um exemplo:

                List<string> lista = new List<string>();
    
                lista.Add("1");
                lista.Add("2");
                lista.Add("3");
                lista.Add("4");
                lista.Add("5");
    
    
                var query = lista.Skip(3);
    
                foreach (var item in query)
                {
                    Console.WriteLine(item);
                }
    
                Console.Read();

    O Skip realmente não esta pulando os três primeiros registros? Isso é bastante estranho...Qual a quantidade de itens retornados pelo SKip e qual a quantidade de itens em "lista"?

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    Microsoft MVP - Data Platform Development
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    • Marcado como Resposta Filipemd_s terça-feira, 13 de novembro de 2012 14:25
    sexta-feira, 9 de novembro de 2012 23:15
    Moderador
  • Obrigado pela ajuda Fernando, consegui já resolver o problema, mas de outra forma, sem o skip.

    Mesmo assim agradeço. Marquei sua resposta como certa pela prontidão.


    Não importa ao tempo o minuto que passa, mas o minuto que vem.

    terça-feira, 13 de novembro de 2012 14:26