.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 ...
随机推荐
- mybatis --- 如何相互转换逗号分隔的字符串和List
如果程序员想实现某种功能,有两条路可以走.一条就是自己实现,一条就是调用别人的实现,别人的实现就是所谓的API.而且大多数情况下,好多“别人”都 实现了这个功能.程序员有不得不在这其中选择.大部分情况 ...
- assert BOOST_ASSERT的坑
下面这行代码 BOOST_ASSERT(SUCCEEDED(m_pd3dDevice->CreateBuffer(&frame_ptr->m_const_buffers[i].m_ ...
- python - Linux C调用Python 函数
1.Python脚本,名称为py_add.py def add(a=,b=): print('Function of python called!') print('a = ',a) print('b ...
- c#异常重试机制
有时候我们碰到程序异常了,想让程序继续重新执行,进行重试,这时候就需要有一个合适的方法来进行操作: 自己写代码控制太麻烦了,也容易出错.这时候当然是站在巨人的肩膀上, https://github.c ...
- 简单理解PHP-FPM
php-fpm只是一个php-fastcgi的管理器,为php提供管理服务 1.为什么会出现php-fpm fpm的出现全部因为php-fastcgi出现,为了很好的管理php-fastcgi而 ...
- mybatis查询结果和接收的不一样
记一次大坑:mybatis查询结果和接收的不一样,折腾我好几个小时. 先上代码:代码是要查询排名,sql执行的结果 SELECT b.operator_id, b.class_count, b.cla ...
- OpenCV + python 实现人脸检测(基于照片和视频进行检测)
OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...
- SAP从入门到精通 知识体系
初步认识 SAP标准课程培训 详细信息点击: SAP从入门到精通课程 标准培训主要是基于SAP标准的课程架构,定期在SAP的培训中心面向广大SAP客户开设公开课.培训过程中会应用SAP标准的教材内容, ...
- 【BZOJ4025】二分图
Description 神犇有一个n个节点的图.由于神犇是神犇,所以在T时间内一些边会出现后消失.神犇要求出每一时间段内这个图是否是二分图.这么简单的问题神犇当然会做了,于是他想考考你. Input ...
- Nginx 配置参数详解
#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debu ...