Tôi cố gắng để tạo ra một lớp bộ nhớ cache chung rằng sẽ tổ chức một danh sách các đối tượng,
và sẽ phơi bày một phương pháp cho phép để kiểm tra xem một thể hiện của một đối tượng đã được lưu trữ dựa trên tài sản Id:Có thể sử dụng Danh sách <T> .Contains (...)?
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; }
}
tôi nhận được một lỗi biên dịch trên lệnh Contains()
, nói:
không thể chuyển đổi biểu thức lambda để gõ 'T' vì nó không phải là một loại đại biểu
Làm cách nào để đạt được mục tiêu?
'Chứa' mất một phần tử * có thể * để tìm kiếm, không phải là vị từ * *. –