Ordenar Lista

24/08/2012

0

Prezados, a rotina abaixo funciona até um certo ponto. No meu banco o campo OrdemExecucao está nessa ordem(campo int). 1,2,4,3. Bem, quando eu carrego a lista, ela vem com os ID dessa ordem, certo? Logo, quando minha variável cont chega a ao valor 3, o Id da tarefa, está para o de OrdemExecucao 4 e logo ele não entra no if. Quando cont chega ao valor 4, o Id da tarefa é o referente ao 3 e também não entra no if. Então pergunto, como eu faço para ter uma lista ordena pelo campo OrdemExecucao. Essa ordenação é na lista, um tipo sort, mas por esse campo. Tem como?

private void execute(Int64 _rotina)
{
int cont = 1;

listaTarefa = Sistema.Infrastructure.Repository.Tarefa.RetornarPorFiltro(new Finder.Tarefa() { IdRotina = _rotina });
foreach (var item in listaTarefa)
{
string path = "";

if (item.OrdemExecucao == cont)
{
path = item.Descricao;
System.Diagnostics.Process.Start(path);
cont += 1;
}

}
}

Pjava

Pjava

Responder

Posts

24/08/2012

Joel Rodrigues

Opa, PJava, dê uma olhada nesse artigo, talvez lhe ajude: https://www.devmedia.com.br/sortedlist-dominando-as-classes-do-net/25485
Responder

24/08/2012

Pjava

Eu fiz isso aqui e não tenho uma lista ordenada, mas pode ser minha classe lista, uso essa classe e não list. Fiz assim e nada:

listaTarefa.OrderBy(c => c.meuCampo).ToList();

A lista continua vindo de forma desordenada.
Responder

24/08/2012

Pjava

resolvi assim:
//***********************************************************************************//
private static int CompararTarefas(Entity.Tarefa tarefaDe, Entity.Tarefa tarefaPara)
{
return tarefaDe.OrdemExecucao.CompareTo(tarefaPara.OrdemExecucao);
}
//***********************************************************************************//
private void execute(Int64 _rotina)
{
var lista = Sistema.Infrastructure.Repository.Tarefa.RetornarPorFiltro(new Finder.Tarefa() { IdRotina = _rotina }).ToList();
lista.Sort(CompararTarefas);

foreach (var item in lista)
{
string path = "";
path = item.Descricao;
System.Diagnostics.Process.Start(path);
}
}
Responder

24/08/2012

Joel Rodrigues

É,como você usa uma classe customizada, foi uma boa saída.

Estou fechando o post.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar