tengo que averiguar si o no dos colecciones tienen ninguna intersección, la forma en que lo hice que está utilizando LINQ de "Join" para obtener la intersección de las dos colecciones y luego yo uso "Cualquier". Pero me pregunto, ¿hay otra forma más "elegante" de hacer esto?cualquier intersección de dos colecciones
11
A
Respuesta
14
Enumerable.Intersect
es probablemente lo que usted está buscando.
De MSDN:
int[] id1 = { 44, 26, 92, 30, 71, 38 };
int[] id2 = { 39, 59, 83, 47, 26, 4, 30 };
IEnumerable<int> both = id1.Intersect(id2);
if(both.Any())...
11
bool intersects = collection1.Intersect(collection2).Any();
Esto supone una implementación "adecuada" de la igualdad y código hash para los miembros de su colección (que es por ejemplo el caso de las primitivas), de lo contrario se puede pasar una costumbre IEqualityComparer
.
0
Por favor, eche un vistazo a http://msdn.microsoft.com/en-us/library/system.linq.enumerable.aspx y más en detalle Acabo de encontrar http://www.codeproject.com/Articles/383749/How-does-it-work-in-Csharp-Part-3-Csharp-Linq-in-d será bastante útil.
1
Aquí es un método de extensión que usamos:
public static bool IntersectAny<T>(this IEnumerable<T> first, IEnumerable<T> second, IEqualityComparer<T> comparer = null) {
return first.Intersect(second, comparer).Any();
}
Cuestiones relacionadas
- 1. Buscar cualquier elemento que exista en dos colecciones
- 2. Comprobando la intersección de dos colecciones a través de HQL
- 3. Intersección de dos expresiones regulares
- 4. intersección de dos mapas STL
- 5. Intersección de dos conjuntos (Listas) de datos
- 6. Código o fórmula para la intersección de dos parábolas en cualquier rotación
- 7. Prueba de intersección de dos idiomas regulares
- 8. La intersección de dos matrices ordenadas
- 9. Intersección de dos listas en Bash
- 10. área de intersección entre dos círculos
- 11. Dos segmentos de línea paralela intersección
- 12. Comparación de dos colecciones en Java
- 13. Encontrar la intersección entre dos columnas
- 14. OpenCV - Intersección entre dos imágenes binarias
- 15. intersección entre dos listas no trabaja
- 16. Intersección entre dos rectángulos en 3D
- 17. Encontrar la intersección de dos tablas de datos .NET
- 18. intersección de dos matriz de cadenas (ignorar caso)
- 19. Determine el área de la intersección de dos rectángulos
- 20. intersección de dos listas de objetos diferentes en java
- 21. Intersección CGPathRef
- 22. intersección eficiente de dos lista <String> en Java?
- 23. algoritmo para eliminar elementos en la intersección de dos conjuntos
- 24. ¿Cómo se calcula la intersección de dos conjuntos?
- 25. git identificar la intersección más reciente de dos ramas
- 26. rectángulos ejes alineados intersección
- 27. Intersección complejidad
- 28. la adición de dos Ajuste [Cualquier]
- 29. Segmento-polígono intersección
- 30. C# forma más eficiente de la comparación de dos colecciones
Gracias! Realmente lo aprecio :) –