Абсолютно - Skip()
и Take()
достигают пейджинга и поддерживаются практически всеми провайдерами LINQ.
В этом случае похоже, что вы используете LINQ-to-XML, поэтому не стесняйтесь игнорировать следующий бит - но для общей информации: обратите внимание, что если данные поступают из базы данных через хранимую процедуру, это сложно на страницу на сервере. Вы можете, однако, составить (то есть страницу) "UDF" s. LINQ-to-SQL поддерживает UDF (через [FunctionAttribute]
), но не Entity Framework. Если вы используете автоматически сгенерированные запросы к базе данных, это не проблема.
Обратите внимание, что с xml вы также можете многое сделать с xpath - здесь используйте XmlDocument
:
foreach (XmlElement el in doc.SelectNodes(
"/Root/BetaSection/Choices/SetA/Choice[position() > 11 and position() < 20]"))
{
Console.WriteLine(el.GetAttribute("id"));
}
или с Skip()
/ Take()
(все еще с XmlDocument
):
foreach (var el in doc.SelectNodes(
"/Root/BetaSection/Choices/SetA/Choice").Cast<XmlElement>()
.Skip(10).Take(10))
{
Console.WriteLine(el.GetAttribute("id"));
}