如何在LINQ C#中同时使用Take和Skip运算符?

Take操作符用于从数组中返回给定数量的元素,而Skip操作符则跳过数组中指定数量的元素。

跳过,从序列中的第一个元素开始,将元素跳过到指定位置。

取,将元素从序列中的第一个元素开始到指定位置。

例子1

class Program{
   static void Main(string[] args){
      List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 1, 2, 3, 4, 5,  6, 7, 8, 9, 1, 2, 3, 5, 6, 7, 7, 8, 8 };
      System.Console.WriteLine(numbers.Count());
      var skipRes = numbers.Skip(5);
      System.Console.WriteLine(skipRes.Count());
      Console.ReadLine();
   }
}

输出结果

28
23

例子2

class Program{
   static void Main(string[] args){
      List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 5, 6, 7, 7, 8, 8 };
      System.Console.WriteLine(numbers.Count());
      var takeRes = numbers.Take(5);
      System.Console.WriteLine(takeRes.Count());
      Console.ReadLine();
   }
}

输出结果

28
5

例子3

class Program{
   static void Main(string[] args){
      List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 5, 6, 7, 7, 8, 8 };
      System.Console.WriteLine(numbers.Count());
      var takeSkipRes = numbers.Skip(10).Take(18);
      System.Console.WriteLine(takeSkipRes.Count());
      Console.ReadLine();
   }
}

输出结果

28
18