【发布时间】:2013-10-27 18:08:25
【问题描述】:
我有一组类如下:
public class ResponseWrapper
{
public IEnumerable<Book> data { get; set; }
}
public class Book
{
public List<Author> author_data { get; set; }
public string isbn13 { get; set; }
public string publisher_name { get; set; }
public string title { get; set; }
}
public class Author
{
public string name { get; set; }
public string id { get; set; }
}
Book 类包含子 Author 项的列表。就我而言,我正在尝试选择集合中 first Author 项目的“名称”属性。
我想我可以使用:
string author = response.data.Where(b => b.author_data.Any()).Select(b => b.author_data.FirstOrDefault().name);
但是这不会编译,我认为这是因为 Select 返回一个集合?我只是想得到一个结果。
谁能告诉我正确的 linq 语句我需要得到我所追求的单一结果吗?
谢谢
【问题讨论】:
-
将最后一个括号向左移一位:
response.data.Where(b => b.author_data.Any()).Select(b => b.author_data.FirstOrDefault()).name;(不是在名称之后,而是在FirstOrDefault()之后。