2012-07-31 103 views
10
List<int> one //1, 3, 4, 6, 7 
List<int> second //1, 2, 4, 5 

¿Cómo obtener todos los elementos de una lista que también están en la segunda lista?Comparar dos listas para buscar elementos comunes

En este caso debe ser: 1, 4

que hablar, por supuesto, sobre el método sin foreach. Más bien consulta linq

Respuesta

38

Puede utilizar el método Intersect.

var result = one.Intersect(second); 

Ejemplo:

void Main() 
{ 
    List<int> one = new List<int>() {1, 3, 4, 6, 7}; 
    List<int> second = new List<int>() {1, 2, 4, 5}; 

    foreach(int r in one.Intersect(second)) 
     Console.WriteLine(r); 
} 

de salida:

1
static void Main(string[] args) 
     { 
      List<int> one = new List<int>() { 1, 3, 4, 6, 7 }; 
      List<int> second = new List<int>() { 1, 2, 4, 5 }; 

      var result = one.Intersect(second); 

      if (result.Count() > 0) 
       result.ToList().ForEach(t => Console.WriteLine(t)); 
      else 
       Console.WriteLine("No elements is common!"); 

      Console.ReadLine(); 
     } 
Cuestiones relacionadas