Es posible manejar automáticamente de la Lista.Contiene mediante la comparación de una propiedad en el objeto?

StackOverflow https://stackoverflow.com/questions/665713

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í.

¿Fue útil?

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
scroll top