从WebMethod返回分页结果?

时间:2010-09-08 17:27:56

标签: c# ienumerable webmethod yield

我需要创建WebMethod,它将从db获取一些数据并将其返回给客户端。

现在,假设数据量巨大,所以我想采取和返回部分数据。

有没有办法在Webmethod中使用yield return?

据我所知,无法在WebMethods中返回泛型类型,但我也无法使用非泛型IEnumerable。

我该如何实现?

1 个答案:

答案 0 :(得分:2)

不,您无法从WebMethod中获得回报。但是您可以向方法调用添加两个参数以允许分页结果:

public string[] GetResults(string someQuery)
{
    var results = new List<string>();

    // Fill Results

    return results.ToArray();
}

变为:

public string[] GetResults(string someQuery, int pageNum, int pageSize)
{
    var results = new List<string>();

    // Fill Results

    return results.Skip(pageNum * pageSize).Take(pageSize).ToArray();
}
相关问题