É possível tratar automaticamente List.Contains comparando uma propriedade sobre o produto?
-
21-08-2019 - |
Pergunta
Podemos fazer algo semelhante ao List.Contains(myItem)
a fim de verificar se uma propriedade em um item na lista é igual a uma propriedade em myItem
.
(Nós consideramos Contains
e Exists
, algo como:
if (orderLines.Contains(myLine)) { ... }
mas não pode obter uma expressão simples.)
Gostaríamos algo tão simples como o seguinte:
if (orderLines.[MethodName](myLine)) { }
e este método deve automagicamente retornar true se cumpre orderLines[i]
pelo menos um item:
myLine.Product.Equals(orderLines[i].Product)
Temos implementado IEquatable<OrderLine>
que equivale pela propriedade Product
, mas não consigo encontrar como proceder a partir daí.
Solução
Você está usando .NET 3.5? Se assim for, o uso LINQ:
if (orderLines.Any(order => order.Product == myLine.Product))
{
...
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow