1

我有一张照片列表和一张专辑列表。我创建了一个类型对象列表来组合它们。现在我正在尝试使用 LINQ,以便可以根据 userId 和相册中包含的照片检索相册。

谁能帮助我了解如何检索上述内容?

我正在使用 LINQPAD 来做到这一点,所以我将在此处附上一张照片。

在此处输入图像描述

4

2 回答 2

1

您不能从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();
于 2020-01-16T14:47:25.343 回答
1

你需要的是一个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};
于 2020-01-16T14:45:17.967 回答