É possível tratar automaticamente List.Contains comparando uma propriedade sobre o produto?

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

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

Foi útil?

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