Sto cercando di creare una classe cache generica che conterrà un elenco di oggetti,
ed esporrà un metodo che permette di controllare se un'istanza di un oggetto è già nella cache basata su ID proprietà:È possibile utilizzare l'elenco <T>. Contiene (...)?
public class CacheService<T> where T : BaseModel
{
private List<T> _data = new List<T>();
public void Check(T obj)
{
if (_data.Contains(r => r.Id.Equals(obj.Id))
{
//Do something
}
}
}
public class BaseModel
{
public int Id { get; set; }
}
sto ottenendo un errore di compilazione sul comando Contains()
, dicendo:
Impossibile convertire espressione lambda al tipo 'T', perché non è un tipo delegato
Come posso raggiungere il mio obiettivo?
'Contains' accetta un * elemento possibile * da cercare, non un * predicato *. –