Pesquisa

sexta-feira, 30 de janeiro de 2009

Classe List<T>

Alguns dos métodos mais úteis da classe List<T> são:
List<Process> listaProcesso = new List<Process>(Process.GetProcesses());

//retorna somente o primeiro encontrado
Process processo = listaProcesso.Find(delegate(Process p)
   {
   return p.ProcessName.Equals("dllhost");
   });

//retora todos os encontrados
List<Process> listaProcessoContemLetraM = listaProcesso.FindAll(delegate(Process p)
   {
   return p.ProcessName.Contains("m");
   });

//remove todos os encontrados
listaProcesso.RemoveAll(new Predicate<Process>(delegate(Process processoRemover)
   {
   return processoRemover.ProcessName.Equals("dllhost");
   }));

//ordem alfabética
listaProcesso.Sort(new Comparison<Process>( delegate(Process p1, Process p2)
   {
   return p1.ProcessName.CompareTo(p2.ProcessName);
   }));

//existe um pelo menos
Boolean existe = listaProcesso.Exists(delegate(Process p)
   {
   return p.ProcessName.Equals("dllhost");
   });

//existe em todos
Boolean existeTodos = listaProcesso.TrueForAll(delegate(Process p)
   {
   return p.MachineName.Equals(System.Environment.MachineName);
   });

//procura o índice
int indiceProcesso = listaProcesso.FindIndex(delegate(Process p)
   {
   return p.ProcessName.Equals("devenv");
   });

//altera o valor de cada um dos objetos da List
List<String> listaNome = new List<string>();
listaNome.Add("A");
listaNome.Add("B");
listaNome.Add("C");
listaNome.Add("D");

listaNome.ConvertAll<String>(delegate(String n)
   {
   return n.ToLower();
   });

//passar por todos os items da List
listaNome.ForEach(delegate(String n)
   {
   Console.WriteLine(n.ToString());
   });

Um comentário: