C#中AsMemory方法

embedded/2024/10/19 6:26:34/

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);             }

http://www.ppmy.cn/embedded/58686.html

相关文章

45、tomcat+课后实验

tomcat 1、tomcat tomcat和php一样&#xff0c;都是用来处理动态页面的。 tomcat也可以作为web应用服务器&#xff0c;开源的。 php .php tomcat .jsp nginx .html tomcat 是用Java代码写的程序&#xff0c;运行的是Java的web应用程序。 tomcat的特点和功能&#xff1a…

C#开发单实例应用程序并响应后续进程启动参数

C#默认的WinForm模板是不支持设置单实例的&#xff0c;也没有隔壁大哥VB.NET那样有个“生成单个实例应用程序”的勾选选项&#xff08;VB某些时候要比C#更方便&#xff09;&#xff0c;实现单实例可以有多种方法&#xff1a; 检测同名进程&#xff1a;Process.GetProcessesByNa…

Redis 中的跳跃表是什么

Redis 中的跳跃表&#xff08;Skiplist&#xff09;是一种可以替代平衡树的数据结构&#xff0c;它主要用于实现有序集合&#xff08;Sorted Set&#xff09;功能。跳跃表通过在多个层级的链表上增加索引来提高查询效率&#xff0c;其效率可以与平衡树相媲美&#xff0c;但实现…

【数据结构】栈

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

SAP与易链SRM系统集成案例

一、项目环境 重庆润通控股&#xff08;集团&#xff09;有限公司成立于2007年&#xff0c;是一家集合汽柴油动力及终端、摩托车、储能电源、汽车零部件、金融服务等产业的多元化集团公司。现拥有员工超4000人&#xff0c;业务遍布全球80多个国家及地区&#xff0c;2021年营…

LangChain —— Prompt Templates

文章目录 一、什么是 Prompt Templates1、String PromptTemplates2、ChatPromptTemplates3、MessagesPlaceholder 留言占位符 二、如何使用 Prompt Templates 一、什么是 Prompt Templates 提示模板有助于将用户输入和参数转换为语言模型的指令。这可用于指导模型的响应&#x…

python操作SQLite3数据库进行增删改查

python操作SQLite3数据库进行增删改查 1、创建SQLite3数据库 可以通过Navicat图形化软件来创建: 2、创建表 利用Navicat图形化软件来创建: 存储在 SQLite 数据库中的每个值(或是由数据库引擎所操作的值)都有一个以下的存储类型: NULL. 值是空值。 INTEGER. 值是有符…

WPF自定义模板--RadioButton

默认格式 <Style x:Key"RadioButtonStyle" TargetType"{x:Type RadioButton}"><Setter Property"FocusVisualStyle" Value"{StaticResource FocusVisual}"/><Setter Property"Background" Value"{Stat…