Take和Skip-机器人学导论第三版课后习题答案
"23.16 Take和Skip假定需要数据集中销售量位于前5名的顾客。我们事先并不知道跻身前5名需要达到多高的销量,所以不能使用where条件查找他们。一些SQL数据库(如Microsoft SQL Server)实现了TOP运算符,所以可以执行命令SELECT TOP 5 FROM ...,获得前5名顾客的数据。与这个操作对应的LINQ方法是Take(),它可以从查询结果中提取前n个结果。实际上,这个方法需要和orderby子句一起使用,才能获得前n个结果。但orderby子句并不是必需的,因为有时知道数据已经按指定的顺序排列好了,或者只需要前n个结果,而不必考虑它们的顺序。
Take()的反面是Skip(),它可以跳过前n个结果,返回剩余的结果。Take()和Skip()在LINQ文档说明中称为分区运算符(partitioning operators),因为它们把结果集分为前n个结果[Take()]和/或其余的结果[Skip()]。下面的示例对顾客列表数据使用了Take()和Skip()。
想了解更多关于LINQ运算符转换的内容,可以参考这篇文章,它详细解释了各种LINQ运算符的用法。还有一些有趣的示例,可以帮助你更好地掌握LINQ TO SQL的使用方法,比如这个示例。你可能会惊讶地发现,Skip方法的用法在VBS教程中也有所体现,这里有一篇相关的教程,非常值得一看。更深入的内容还有这篇文章,其中详细讨论了linq to sql、linq to xml和linq to object的区别和联系。
下载地址
用户评论