E 'possibile gestire automaticamente List.Contains confrontando una proprietà sulla voce?
-
21-08-2019 - |
Domanda
Possiamo fare qualcosa di simile a List.Contains(myItem)
al fine di verificare se una proprietà su un elemento della lista è uguale a una proprietà su myItem
.
(abbiamo considerato Contains
e Exists
, qualcosa come:
if (orderLines.Contains(myLine)) { ... }
ma non può ottenere una semplice espressione.)
Ci piacerebbe qualcosa di semplice come il seguente:
if (orderLines.[MethodName](myLine)) { }
e questo metodo dovrebbe automagicamente restituire true se almeno un elemento orderLines[i]
soddisfa:
myLine.Product.Equals(orderLines[i].Product)
Abbiamo implementato IEquatable<OrderLine>
che equivale dalla Product
proprietà, ma non in grado di trovare il modo di procedere da lì.
Soluzione
Stai usando .NET 3.5? In tal caso, utilizzare LINQ:
if (orderLines.Any(order => order.Product == myLine.Product))
{
...
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow