Próbuję stworzyć ogólną klasę cache, które przechowuje listę obiektów,
i narazi metodę, która pozwala sprawdzić, czy instancja obiektu jest zbuforowania na podstawie właściwości ID:Czy można użyć listy <T>. Zawiera (...)?
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; }
}
otrzymuję błąd kompilatora na komendę Contains()
, mówiąc:
nie można przekonwertować wyrażenia lambda, aby wpisać „T”, ponieważ nie jest to typ delegata
Jak mogę osiągnąć mój cel?
'Zawiera" pobiera * możliwy element * do wyszukania, a nie * predykatu *. –