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