使用LINQ获取()X-number记录的正确方法是什么,但是找出是否还有更多

时间:2015-07-03 20:09:20

标签: c# linq

性能方面,使用LINQ-To-SQL记录Take()记录的最佳方法是什么,但同时要查明是否还有更多?我目前正在做的是:

model.MyList = source.Take(11).ToList();

if (model.MyList.Count() > 10)
{
 model.HasMore = true;
 model.MyList= model.MyList.Take(10).ToList();
}

1 个答案:

答案 0 :(得分:2)

您可以n + 1,然后计算收到的项目。如果他们的计数大于n,则会有更多记录(至少还有一个)。

请参阅您的代码,以下行model.MyList= model.MyList.Take(10).ToList();会创建一个新列表。您只需删除现有列表的最后一项即可避免这样做:model.MyList.RemoveAt(model.MyList.Count - 1)。列表越长,性能优势就越高。

model.MyList = source.Take(11).ToList();

if (model.MyList.Count > 10)
{
   model.HasMore = true;
   model.MyList.RemoveAt(model.MyList.Count - 1);
}