在LINQ语句中转换为while类型



我在ASP中有以下LINQ。NET 4.0。我正在通过XML文件读取数据,并试图将结果过滤到强类型对象中。

    List<Books> books = (from q in _XmlConnection.Descendants("BookShelf")
                                    select new
                                    {
                                        Title = q.Element("title").Value,
                                        Author = q.Element("autor").Value
                                    }).ToList();

现在我可以做的是在这条语句之后运行foreach,并创建一个新的Books对象,该对象被分配给一个列表。我想做的是将所有这些都包含在LINQ语句中,这样当我为Title或Author定义值时,它会将其赋值给List<书>马上就来。这样我就可以直接跳转到"还书"。有办法做到这一点吗?

(注意:上面的代码返回一个错误,但现在这是好的。我可以使用"var books",它工作得很好,但我把它留在这里,以显示我希望它看起来像什么)。

欢呼:)

你几乎就在那里-现在你正在投射到一个匿名类型(使用new {}) -投射到一个类实例,而不是你需要指定类名,所以假设你的Book类有公共属性TitleAuthor:

List<Book> books = (from q in _XmlConnection.Descendants("BookShelf")
                                select new Book()
                                {
                                    Title = q.Element("title").Value,
                                    Author = q.Element("autor").Value
                                }).ToList();
编辑:你的例子是使用类型Books -我假设,虽然类,持有单一的书的属性被命名为 book (单数)。
List<Books> books = (from q in _XmlConnection.Descendants("BookShelf")
                                select new Book()
                                {
                                    Title = q.Element("title").Value,
                                    Author = q.Element("autor").Value
                                }).ToList();

相关内容

  • 没有找到相关文章