C# Span<T> 高效内存操作
学习Span<T>和ReadOnlySpan<T>,实现零分配的内存切片操作 · 难度:入门 · +15XP
Span 概述
Span
为什么使用 Span
| 传统方式 | Span 方式 |
|---|---|
| 分配子数组 | 创建视图 |
| GC 压力大 | 零分配 |
| 仅限托管数组 | 多种内存源 |
示例
int[] array = { 1, 2, 3, 4, 5 };
Span slice = array.AsSpan(1, 3);
slice[0] = 99; // 修改原数组
Console.WriteLine(array[1]); // 99 字符串处理
ReadOnlySpan span = "Hello World".AsSpan();
var sub = span.Slice(0, 5);
Console.WriteLine(sub.ToString()); // Hello 💡 练习提示:编写一个函数,使用 Span 高效解析 CSV 行中的数字,避免字符串分配。