Array
(
)

Ordenar Lista

Pjava
   - 24 ago 2012

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;
}

}
}

Joel Rodrigues
   - 24 ago 2012

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

Pjava
   - 24 ago 2012

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.

Pjava
   - 24 ago 2012

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);
}
}

Joel Rodrigues
   - 24 ago 2012

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

Estou fechando o post.