.NET Core 的 Span<T> 学习与使用笔记
一、阅读材料
- All About Span: Exploring a New .NET Mainstay
 - Span<T> - byte to int conversions
 - Span<T> and universal memory management
 - Introducing .NET Core 2.1 Flagship Types: Span T and Memory T
 - How to use Span<T> and Memory<T>
 
二、实际使用记录
1. 判断字符串是否为空
传统写法
if(string.IsNullOrEmpty(text))
{
return string.Empty;
}
使用 Span<T> 的写法
ReadOnlySpan<char> span = markdown.AsSpan();
if (span.IsEmpty)
{
return string.Empty;
}
2. 是否包含指定字符串
传统写法
if (text.Contains("@"))
{
    //...
}
使用 Span<T> 的写法
if (span.Contains("@".AsSpan(), StringComparison.Ordinal))
{
    //...
}
3. 去除指定字符串
传统写法
writer.Write(text.Replace("[TOC]", string.Empty));
使用 Span<T> 的写法
var chars = text.AsSpan();
var tocIndex = chars.IndexOf("[TOC]", StringComparison.OrdinalIgnoreCase);
var tocLength = "[TOC]".Length;
if (tocIndex >= )
{
if (tocIndex == )
{
writer.Write(chars.Slice(tocLength));
}
else if (tocIndex == chars.Length - tocLength)
{
writer.Write(chars.Slice(, chars.Length - tocLength));
}
else
{
writer.Write(chars.Slice(, tocIndex));
writer.Write(chars.Slice(tocIndex + tocLength));
}
}
else
{
writer.Write(chars);
}
【资料搜集】
.NET Core 的 Span<T> 学习与使用笔记的更多相关文章
- 转 iOS Core Animation 动画 入门学习(一)基础
		
iOS Core Animation 动画 入门学习(一)基础 reference:https://developer.apple.com/library/ios/documentation/Coco ...
 - 从零开始搭建.NET Core 2.0 API(学习笔记一)
		
从零开始搭建.NET Core 2.0 API(学习笔记一) 一. VS 2017 新建一个项目 选择ASP.NET Core Web应用程序,再选择Web API,选择ASP.NET Core 2. ...
 - ASP.NET Core on K8S深入学习(7)Dashboard知多少
		
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 在第二篇<部署过程解析与Dashboard>中介绍了如何部署Das ...
 - 【笔记目录2】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总
		
当前标签: ASP.NET Core快速入门 共2页: 上一页 1 2 任务27:Middleware管道介绍 GASA 2019-02-12 20:07 阅读:15 评论:0 任务26:dotne ...
 - ASP.NET Core on K8S 入门学习系列文章目录
		
一.关于这个系列 自从2018年底离开工作了3年的M公司加入X公司之后,开始了ASP.NET Core的实践,包括微服务架构与容器化等等.我们的实践是渐进的,当我们的微服务数量到了一定值时,发现运维工 ...
 - Python学习的个人笔记(基础语法)
		
Python学习的个人笔记 题外话: 我是一个大二的计算机系的学生,这份python学习个人笔记是趁寒假这一周在慕课网,w3cschool,还有借鉴了一些博客,资料整理出来的,用于自己方便的时候查阅, ...
 - 深度学习Keras框架笔记之AutoEncoder类
		
深度学习Keras框架笔记之AutoEncoder类使用笔记 keras.layers.core.AutoEncoder(encoder, decoder,output_reconstruction= ...
 - 深度学习Keras框架笔记之TimeDistributedDense类
		
深度学习Keras框架笔记之TimeDistributedDense类使用方法笔记 例: keras.layers.core.TimeDistributedDense(output_dim,init= ...
 - 深度学习Keras框架笔记之Dense类(标准的一维全连接层)
		
深度学习Keras框架笔记之Dense类(标准的一维全连接层) 例: keras.layers.core.Dense(output_dim,init='glorot_uniform', activat ...
 
随机推荐
- 分析技术和方法论营销理论知识框架,营销方面4P、用户使用行为、STP,管理方面5W2H、逻辑树、金字塔、生命周期
			
原文:五种分析框架:PEST.5W2H.逻辑树.4P.用户使用行为 最近在一点点的啃<谁说菜鸟不懂得数据分析>,相当慢,相当的费脑力,总之,真正的学习伴随着痛苦:) 最初拿到这本书的时候, ...
 - OpenLayers Node环境安装运行构建-支持Vue集成OpenLayers
			
NodeJS 环境安装包下载:https://nodejs.org/zh-cn/download/ 安装vue-cli3.0.1: https://cli.vuejs.org/guide/instal ...
 - springboot 项目中读取资源文件内容 如图片、文档文件
			
1 问题描述:在 springboot 项目中有时候会需要读取一些资源文件,例如 office的 docx 文档或者 png.jpg的图片.在多模块项目中资源文件需要放到启动项目的 Resources ...
 - FFmpeg中的时间基(time_base), AV_TIME_BASE
			
AV_TIME_BASE 经常在FFmpeg的代码中看到一个奇怪的单位 AV_TIME_BASE ,比如 AVFormatContext 结构体中就有这样一个字段: duration ,它在FFmpe ...
 - Win2012R2 AD主域控登录密码忘记
			
按照普遍的修改cmd.exe 的方法,还需要注意,DC主控制器修改密码需要在后面加上 /domain net user administrator 123 /domain
 - 建站工具Hexo
			
$ npm install hexo-cli -g $ hexo init blog $ cd blog $ npm install $ hexo server
 - Linux 文件属性及权限_007
			
Linux一切皆文件: Llinux系统的文件或目录的属性主要包括:索引节点.文件类型.文件权限.链接数.所属的用户和用户组.最近修改时间等. Llinux文件属性及权限图形说明: Linux文件属性 ...
 - 并发编程基础之volatile关键字的用法
			
一:概念 volatile关键字是一个轻量级的线程同步,它可以保证线程之间对于共享变量的同步,假设有两个线程a和b, 它们都可以访问一个成员变量,当a修改成员变量的值的时候,要保证b也能够取得成员变量 ...
 - shell脚本学习笔记(符号)
			
shell脚本的学习: 1.Shell的作用是解释运行用户的命令,用户输入一条命令,Shell就解释运行一条,这样的方式称为交互式(Interactive),Shell还有 一种运行命令的方式称为批处 ...
 - js返回上一页并刷新、返回上一页、自动刷新页面
			
一.返回上一页并刷新 <a href="javascript:" onclick="self.location=document.referrer;"&g ...