C#中AsMemory方法

1、效率:Memory<T>和Span<T>有助于避免不必要的分配,对频繁操作数组或字符串时起到提高其性能。

2、安全:类型都提供了安全和经过边界检查的内存访问,能降低常见编程错误风险。

3、灵活性:Memory<T>可以存储在堆上并用于异步编程,与仅限于堆栈的Span<T>不同。

// 定义一个数组            string[] weekDays = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};            // 从数组中创建Memory<string>            Memory<string> memory = weekDays.AsMemory();            // 创建Memory<string>的一个切片            Memory<string> slice = memory.Slice(3, weekDays.Length-3);            // 访问切片中的元素            foreach (var day in slice.Span)            {                // 输出: Wednesday Thursday Friday Saturday                Console.WriteLine(day);             }

string text = "Create a object.";            // 从字符串创建内存<char>            Memory<char> memory = text.AsMemory().ToArray();            // 创建内存<char>的一个切片            Memory<char> slice = memory.Slice(9, 6);            // 将内存切片转换回字符串            string result = new string(slice.Span);            // 输出: object            Console.WriteLine(result); 

// 定义一个数组            string[] weekDays = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };            // 定义一个新数组            string[] slice = new string[weekDays.Length - 3];            // 将元素从原始数组复制到新数组            Array.Copy(weekDays, 3, slice, 0, weekDays.Length-3);            // 访问新数组中的元素            foreach (var day in slice)            {                // 输出: Wednesday Thursday Friday Saturday                Console.WriteLine(day);             }

 // 定义一个数组            string[] weekDays = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };            // 通过LINQ创建一个数组            string[] slice = weekDays.Skip(3).Take(weekDays.Length-3).ToArray();            // 访问新数组中的元素            foreach (var day in slice)            {                // 输出: Wednesday Thursday Friday Saturday                Console.WriteLine(day);             }

相关推荐

  1. C#AsMemory方法

    2024-07-13 03:42:02       23 阅读
  2. C#方法

    2024-07-13 03:42:02       24 阅读
  3. C# Combine 静态方法

    2024-07-13 03:42:02       46 阅读
  4. C#的扩展方法

    2024-07-13 03:42:02       29 阅读
  5. C# 的匿名方法

    2024-07-13 03:42:02       31 阅读
  6. C++sort()排序函数使用方法

    2024-07-13 03:42:02       55 阅读
  7. Objective-C的“description“方法

    2024-07-13 03:42:02       45 阅读
  8. ++避免内存泄漏的方法

    2024-07-13 03:42:02       29 阅读
  9. C++的工厂方法模式

    2024-07-13 03:42:02       27 阅读
  10. C++的模板方法模式

    2024-07-13 03:42:02       21 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 03:42:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 03:42:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 03:42:02       58 阅读
  4. Python语言-面向对象

    2024-07-13 03:42:02       69 阅读

热门阅读

  1. js ES6 part3

    2024-07-13 03:42:02       24 阅读
  2. docker/podman 安装nacos

    2024-07-13 03:42:02       23 阅读
  3. 【面试题】MySQL(第三篇)

    2024-07-13 03:42:02       18 阅读
  4. 腾讯面试:let、const解决了什么问题?

    2024-07-13 03:42:02       18 阅读
  5. 并查集

    并查集

    2024-07-13 03:42:02      16 阅读