我有一张照片列表和一张专辑列表。我创建了一个类型对象列表来组合它们。现在我正在尝试使用 LINQ,以便可以根据 userId 和相册中包含的照片检索相册。
谁能帮助我了解如何检索上述内容?
我正在使用 LINQPAD 来做到这一点,所以我将在此处附上一张照片。
我有一张照片列表和一张专辑列表。我创建了一个类型对象列表来组合它们。现在我正在尝试使用 LINQ,以便可以根据 userId 和相册中包含的照片检索相册。
谁能帮助我了解如何检索上述内容?
我正在使用 LINQPAD 来做到这一点,所以我将在此处附上一张照片。
您不能从object
类型访问属性(除非您使用反射在 c# 中获取属性值)。这就是您收到错误的原因。
如果要根据 userId 和相册中包含的照片检索相册,可以使用linq to object
如下
var result = (from p in _photos
join a in _albums on p.AlbumId equals a.Id
where a.UserId==1
select new { p.Title, a.Title}).ToList();
// It returns `Anonymous type`
您还可以创建一个类来存储您的值,如下所示
public class Result
{
public string AlbumTitle { get; set; }
public string PhotoTitle { get; set; }
public string Photo_ThumbnailUrl { get; set; }
// Any properties as you wish
}
var result = (from p in _photos
join a in _albums on p.AlbumId equals a.Id
where a.UserId==1
select new Result { PhotoTitle = p.Title, AlbumTitle = a.Title, Photo_ThumbnailUrl = p.ThumbnailUrl}).ToList();
你需要的是一个join:
var query= from photo in _photos
join album in _albums on photo.AlbumId equals album.ID
where album.UserId==1
select new {album, photo};