C# Skip
时间: 2025-07-31 11:41:39 浏览: 3
在 C# 中,`Skip` 是 LINQ(Language Integrated Query)中的一个标准查询操作符,用于跳过序列中指定数量的元素,然后返回剩余的元素。它常用于对集合(如 `List<T>`、数组、`IEnumerable<T>` 等)进行分页或过滤操作。
---
### 示例:使用 `Skip` 跳过 `List<byte>` 中的前几个元素
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<byte> dataList = new List<byte> { 0x01, 0x02, 0x03, 0x04, 0x05 };
int skipCount = 2; // 跳过前两个元素
// 使用 Skip 跳过前 skipCount 个元素
IEnumerable<byte> remainingData = dataList.Skip(skipCount);
Console.WriteLine("Remaining data after Skip:");
foreach (byte b in remainingData)
{
Console.Write(b.ToString("X2") + " ");
}
}
}
```
### 输出:
```
Remaining data after Skip:
03 04 05
```
---
### 说明:
- `dataList.Skip(2)`:跳过列表中前两个元素(即 `0x01` 和 `0x02`),返回剩下的元素。
- `Skip` 返回的是 `IEnumerable<T>` 类型,你可以将其转换为 `List<T>`:
```csharp
List<byte> remainingList = dataList.Skip(skipCount).ToList();
```
---
### 注意事项:
- 如果跳过的数量大于集合的长度,`Skip` 会返回一个空的 `IEnumerable<T>`,而不会抛出异常。
- `Skip` 是延迟执行的(deferred execution),只有在遍历时才会真正执行。
---
### 分页示例(结合 `Skip` 和 `Take`):
```csharp
int pageSize = 2;
int pageNumber = 2;
var pageData = dataList.Skip((pageNumber - 1) * pageSize)
.Take(pageSize)
.ToList();
```
这会获取第 2 页的数据,每页显示 2 个元素。
---
##
阅读全文
相关推荐



















