因此,我想在C# ASP.NET Web中分割一个“ASP.NET”,但我无法让它工作。下面的代码可能会更清楚我想要做什么。
private TestTwoContext db = new TestTwoContext();
// GET: api/Fruits/thefruits
[HttpGet]
[Route("api/Fruits/thefruits")]
public IQueryable<Fruits> TheFruits()
{
dynamic myList = db.Fruits;
var FiveItems = Queryable.Take(Queryable.Skip(myList, 5), 5);
return FiveItems;
}这使我在浏览器控制台中出错:
JQuery3.3.1.min.js:2 GET http://localhost:49771/api/Fruits/thefruits 500 (内部服务器错误)
我需要将我的列表(db.Fruits)从第5个元素减少到第10个元素。就像我们在JavaScript中分割数组一样。示例:
var myList = array.slice(5, 10)我也尝试过这样做:
private TestTwoContext db = new TestTwoContext();
// GET: api/Fruits/thefruits
[HttpGet]
[Route("api/Fruits/thefruits")]
public IQueryable<Fruits> TheFruits()
{
var myList = db.Fruits;
var FiveItems = myList.Skip(5).Take(4);
return FiveItems;
}这给了我浏览器控制台中的错误:jQuery3.3.1.min.js:2 GET http://localhost:49771/api/Fruits/thefruits 500 (内部服务器错误)
skip和take的号码将作为护理人员通过,但这并不是我担心的部分.这些数字只是目前的例子。任何帮助都将不胜感激。
这个Conroler的工作没有问题:
// GET: api/Fruits
public IQueryable<Fruits> GetFruits()
{
return db.Fruits;
}返回整个水果列表,稍后我用HTML将其写在表中。
这也适用于:
[HttpGet]
[Route("api/Fruits/thefruits")]
public IQueryable<Fruits> TheFruits()
{
var myList = db.Fruits;
var FiveItems = myList.Take(5);
return FiveItems;
}但它给了我前5个元素..。不是从第五元素到第十元素。
发布于 2018-06-20 18:24:23
如果您发布了500个错误,那就太好了,但据猜测,这可能是因为Skip不能在EntityFramework中调用order
[HttpGet]
[Route("api/Fruits/thefruits")]
public IQueryable<Fruits> TheFruits()
{
return db.Fruits.OrderBy(x => x.Id).Skip(4).Take(5);
}发布于 2018-06-20 17:37:03
试着用这个来理解Skip()并取()。
var list = new List<long>{0,1,2,3,4,5,6,7,8,9};
var secondList = list.AsQueryable().Skip(5).Take(5).ToList();
secondList跳过(X) ->它忽略了Iqueryable上的第一个X项
取(Y) ->限制最大结果。
产出如下:
List<long>(5) { 5, 6, 7, 8, 9 }发布于 2018-06-20 17:57:38
尝试将"TheFruits“方法更新为:
// GET: api/Fruits/thefruits
[HttpGet]
[Route("api/Fruits/thefruits")]
public IQueryable<Fruits> TheFruits()
{
dynamic myList = db.Fruits;
var FiveItems = myList.Skip(5).Take(5);
return FiveItems;
}示例控制台应用程序:
using System.Linq;
static void Main(string[] args)
{
int[] test = new[] { 1, 2, 3, 4, 5, 6, 7, 8 };
var t = test.AsQueryable().Skip(5).Take(5);
foreach (int i in t)
{
Console.WriteLine(i.ToString());
}
Console.ReadLine();
}https://stackoverflow.com/questions/50953932
复制相似问题