使用LINQ如何访问类中的List项的值

时间:2012-08-31 10:56:26

标签: c# .net linq

我有两个班级MoviesListRootObjectResponseMoviesListRootObject我想要访问Response的ID,标题和说明,并将其分配给var。

List<Response>

现在我能想到编写LINQ来获取包含响应的MovieDetails对象但是没有用。

public class MoviesListRootObject
{
    public int count { get; set; }
    public Pagination pagination { get; set; }
    public List<Response> response { get; set; }
}
[Serializable]
public class Response
{
    public int id { get; set; }
    public string title { get; set; }
    public string title_language { get; set; }
    public string description { get; set; }
    public string description_language { get; set; }
}

3 个答案:

答案 0 :(得分:5)

你想要实现的目标并不是很清楚。我的回答假设您只想在所有MoviesListRootObject中使用所有响应的属性:

var result = rootObj.SelectMany(x => x.response)
                    .Select(x => new { x.id, x.title, x.description });

你甚至不需要匿名课程:

var result = rootObj.SelectMany(x => x.response);
// result will be of type IEnumerable<Response>

答案 1 :(得分:2)

var movieResponse = rootObj
                    .SelectMany(m => m.response)
                    .Select(m => new {
                       id = m.id, // or just m.id, as name is the same
                       title = m.title, //idem
                       description = m.description //idem
                    });

答案 2 :(得分:1)

您是在询问SelectMany吗?

var allResponses = rootObj.SelectMany(d => d.Response);

将为Response中的所有电影提供rootObj的全部内容。


如果rootObj实际上是MoviesListRootObject的实例,则您不需要SelectMany

var responses = rootObj.response;

会做的。