c# - 按日期排序仅在 LINQ 中打印最新的 20 条记录

标签 c# xml linq

我正在根据一本书的出版时间打印所有最新记录。(PubEnd)。现在我可以按降序打印所有出版的书籍。

我需要打印最新发布的 20 本书。我该怎么做??
现在,下面的代码正在按降序打印所有出版的书籍。

var query = docs.Descendants(name)
        .Select(x => new
                        {
                            Title = (string)x.Element(ns + "TITLE"),
                            Status = (string)x.Element(ns + "STATUS"),
                            PubEnd = (string)x.Element(ns + "PUB_END")

                        })                                              
        .Select(x => new
        {
            Title = x.Title,
            Status = x.Status,
            PubEnd = x.PubEnd,
        }).OrderByDescending(x => x.PubEnd).ToList();

foreach (var book in query)
{
    if (book.Status == "Published")
    {
        Response.Write(book.Title);
        Response.Write(book.Status);
        Response.Write(book.PubEnd);
    }
}

最佳答案

使用Take() :

foreach (var book in query.Take(20))
{
   //print
}

如果您总是只需要 20 相应地更新查询本身:

(..).OrderByDescending(x => x.PubEnd).Take(20).ToList();

关于c# - 按日期排序仅在 LINQ 中打印最新的 20 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9721788/

相关文章:

php - 使用 php 脚本将 pimcore 中的现有数据对象导出到 XML 文件

c# - 如何让 XmlSerializer 不序列化列表容器标签?

c# - 使用 LINQ 读取 XML 字符串

c# - 连接 dictionary<string,<IEnumerable string>> 中的键和值以生成一个列表

c# - 使用 Web API Controller 解析传入的 JSON(来自 javascript Ajax post)

c# - 如何在 C# 中的特定确切时间(离现在很远)执行代码?

c# - 无法在 ASP.Net 和 C# 中使用 LINQ 解析 XML

C# Linq 如何比较两个字符串并报告第一个不同于 '?' 通配符的不同字符

c# - 使用BinaryReader/BinaryWriter建立聊天

c# - 如何在 C# 中将相同的控件添加到多面板中?