Es posible manejar automáticamente de la Lista.Contiene mediante la comparación de una propiedad en el objeto?
-
21-08-2019 - |
Pregunta
Podemos hacer algo similar a List.Contains(myItem)
con el fin de comprobar si una propiedad de un elemento de la lista es igual a una propiedad en myItem
.
(Hemos considerado Contains
y Exists
, algo como:
if (orderLines.Contains(myLine)) { ... }
pero no se puede obtener una expresión sencilla.)
Nos gustaría algo tan sencillo como el siguiente:
if (orderLines.[MethodName](myLine)) { }
y este método debe automágicamente devolver true si al menos un elemento orderLines[i]
cumple:
myLine.Product.Equals(orderLines[i].Product)
Hemos implementado IEquatable<OrderLine>
lo que equivale por el Product
la propiedad, pero no puede encontrar la manera de proceder a partir de ahí.
Solución
¿Está utilizando .NET 3.5? Si es así, utilizar LINQ:
if (orderLines.Any(order => order.Product == myLine.Product))
{
...
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow