30/12/2022 - zoro82 ha scritto:
Inizialmente, avevo optato anche io per la soluzione con l'espressione lambda. Tuttavia, cercavo una soluzione un po' più “schematica” che facesse uso di un metodo non anonimo e al quale poter passare un parametro da utilizzare nel filtro.
Secondo me, più “schematico” e sintetico di una espressione lambda non c'è nulla. :)
30/12/2022 - zoro82 ha scritto:
Credo non ci sia possibilità, a meno di utilizzare una variabile di classe privata come hai fatto tu (_targa).
Diciamo che quando il metodo viene eseguito, nello “scope” deve esserci qualcosa che contenga il valore da utilizzare nel filtro.
Detto questo, che sia un campo privato o un'altra entità, la scelta è affidata allo sviluppatore.
Fatico a capire qual è la struttura che stai cercando di creare e, di conseguenza, se può avere un senso a livello pratico, perché il problema che stai affrontando non è mai stato un ostacolo per me. :|
30/12/2022 - zoro82 ha scritto:
Avevo anche provato ad usare un delegato Func ma il metodo find non la digerisce bene.
Certo che è così: C# è un linguaggio tipizzato, quindi ciò che passi deve essere compatibile con il tipo a cui appartiene il parametro da valorizzare, non si scappa.
Func<> può essere usato se la definisci così
Func<Autoveicolo, bool>
ovvero se si riferisce a un metodo che accetta un parametro di tipo Autoveicolo e restituisce un valore di tipo Boolean: qualunque tentativo di usare tipi diversi, o più/meno parametri, non è ovviamente compatibile con la firma attesa per il metodo.
Ciao! :)