【问题标题】:how to return specific ammount of list entries - c# asp.net mvc如何返回特定数量的列表条目 - c# asp.net mvc
【发布时间】:2010-08-30 21:32:25
【问题描述】:

例如,我有一些包含 120 个条目的列表。

 Threads = new List<Thread>();

我将返回显示其中的 10 个。

我有一个属性,例如 TotalCount、TotalPages、PageSize=10、PageIndex。 我该怎么做?

保重, 拉吉姆斯

【问题讨论】:

    标签: c# asp.net list pagination


    【解决方案1】:

    Threads.Skip(PageIndex*PageSize).Take(PageSize) 怎么样?

    (编辑:这取决于 linq 扩展方法)

    【讨论】:

    • 你有什么想法可以用糟糕的 sql 语句和 c# 来做这件事吗?
    • 如果我错了,请纠正我,但这不会给您提供您要查找的页面之后的页面吗?第 1 页将跳过 1 * 10 并为您提供下一个 10,即结果 11 - 20。
    • 是的,你是绝对正确的,但我没有在我的项目中使用 linq。我正在尝试不使用 linq。
    【解决方案2】:

    使用SkipTake 的组合:

    var threads = new List<Thread>();
    
    // Fill the list
    
    threads.Skip(PageSize * (PageIndex - 1)).Take(PageSize);
    

    或者,如果 PageIndex 从零开始(第一页是 PageIndex = 0),那么:

    threads.Skip(PageSize * PageIndex).Take(PageSize);
    

    【讨论】:

    • 我不能使用 linq...因为我所有的逻辑都是用 c# 和 sql 语句构建的
    • @Ragims - 我很困惑。您仍在填写列表,并且想要翻阅列表。一旦 List 被填满,你的逻辑和 SQL 就已经运行了,不是吗?
    【解决方案3】:

    在 Google 上搜索“使用 LINQ 进行分页”,您会得到很多想法。 LINQ 确实让这种事情变得更容易。

    【讨论】:

    • 我所有的逻辑都已经在代码中使用了 sql 语句。现在很难使用 linq
    • LINQ难用是什么意思?
    • 如果我已经用 c# 和 sql 语句作为 SqlCommand.Text 实现了逻辑,我可以使用 linq 吗?我从未使用过 linq。我不知道我是否可以在我已经实现的逻辑之外使用它
    • @Ragmis:您的问题没有说明 SQL 语句。将其包含在您的原始问题中会为您提供更好的答案。
    • Bertrand Marron:我说过 LINQ 更容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 2016-03-03
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    相关资源
    最近更新 更多