c#进阶之数据结构(字符串篇)----String

1、String介绍

        首先我们得明白,string和String代表的实际上是同一个类型,string是C#中的关键字,代表String类型,因此我们直接来学习String类型。

      

        从官方的底层实现代码可以看出,当前String类型实际上就是一个Char类型的聚合,这里既然是聚合其实也可以得到结论就是string可以使用迭代器进行访问。但是,string类型是不可变的。

        为什么string类型不可变?:原因有很多,但是从底层的角度出发

        其实可以看出来,他只有get没有set,所以是不可变的。

        下面是构造函数,注意带有指针的部分是并不适用于CLS(通用语言规范),也就是c#原生语法的。

2、字段

        目前只有一个字段

3、属性

        string类型有两个属性。

        索引器,只读

        

        char长度,只读

        其实从这里就可以看出来,c#官方推介使用string只是作为临时存储,不希望通过属性或者字段来实现增删改查。

4、方法

        这里选择比较有代表性或者比较常用的方法。

        注意:string类型是不可变的,因此他实际的修改都是返回新的string来实现。

4.1、EndsWith(尾匹配)

4.2、Format(模板格式):不多介绍,常用

4.3、Replace(替换)

        注意,他并不是指只替换第一个,而是全部。

4.4、ReplaceLineEndings (替换所有换行字符)

4.5、Split(拆分,返回string数组)

4.6、StartsWith(开头是否匹配)

4.7、Substring (返回子字符串)

4.8、ToCharArray (返回当前字符串的char数组)

        这里必须要注意点,修改这个char数组里面的值并不会修改string原来的值!可以通过下面的源码得到这个结论

4.9、TryCopyTo(复制到目标范围):做了解,了解一下什么是span

5、运算符

        实现了+法。==和!=判断。

        除此之外还实现了一个。

       可以理解为封装器,这个span是new出来的,但是value通过的是ref这种址传递的方式,因此,这个就是被封装的原来

        

使用方法也很简单,隐式转换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/bicheng/89162.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速排序递归和非递归方法的简单介绍

基本思想为:任取待排序元素序列中 的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右 子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元…

从零开始的云计算生活——第三十二天,四面楚歌,HAProxy负载均衡

目录 一.HAProxy简介 二.HAProxy特点和优点: 三.HAProxy保持会话的三种解决方法 四.HAProxy的balance 8种负载均衡算法 1)RR(Round Robin) 2)LC(Least Connections) 3)SH&am…

策略模式及优化

策略模式(Strategy Pattern)是一种行为设计模式,其核心思想是将算法的定义与使用分离,使算法可以独立于客户端进行变化。它通过定义一系列算法,将每个算法封装到独立的类中,并使它们可以互相替换&#xff0…

微信小程序开发-桌面端和移动端UI表现不一致问题记录

桌面端和移动端UI表现不一致零、引擎说明一、样式不同1、text 单行:1.1 空格开发者工具不展示,手机/PC端正常1.2 正常展示省略号,需要2、点击按钮z-index: -1。webview - 桌面端不行, skyline - 移动端可以;3、其他说明…

极限状态下函数开根号的计算理解(含示意图)

遇到一个挺有意思的题做个记录: 求曲线y (x21)(x2−1)0.5\frac{\left(x^{2}1\right)}{\left(x^{2}-1\right)^{0.5}}(x2−1)0.5(x21)​渐近线的条数 比较明显的x 1是无定义点。但是在求极限的时候发现1和1-得到的极限值似乎不一样。似乎是1是趋向于∞,1…

C++——模版(函数模版和类模版)

C 模板(Templates)完整介绍模板是 C 中一种强大的泛型编程机制,允许开发者编写与类型无关的代码,从而提高代码的复用性和灵活性。通过模板,可以避免为不同数据类型重复编写相似的函数或类,实现真正的代码复…

Python之cv2:cv2(OpenCV,opencv-python)库pip下载超时、下载失败、无法下载的解决方案大全

Python之cv2:cv2(OpenCV,opencv-python)库pip下载超时、下载失败、无法下载的解决方案大全 在学习和使用 OpenCV(Python 包名:opencv-python 或简称 cv2)的过程中,很多初学者常常会遇到通过 pip install o…

asyncio 与 uvloop

事件循环 事件循环 协调所有协程执行的中央调度器,它通过非阻塞机制,实现并发执行多个异步任务。 事件循环是 异步编程的核心机制,用一句话概括就是: 事件循环不断检查任务队列,一旦某个异步任务完成,它…

一文读懂循环神经网络(RNN)—语言模型+n元语法(1)

目录 什么是语言模型? 语言模型的核心目的 一.量化文本的合理性 二.支持下游 NLP 任务 三. 语义和上下文依赖 一元语法、二元语法和三元语法详解 核心概念:n-gram 模型 1. 一元语法(Unigram) 2. 二元语法(Bigram…

DirectX12(D3D12)基础教程九 间接绘制

在学习directx12 microsoft提供了很多示例,有简单的也有复杂,下载网址:https://github.com/microsoft/DirectX-Graphics-Samples 本章对D3D12ExecuteIndirect 示例做了简化,只保留间接绘制部分,删除了计算着色器部分。 间接绘制…

fastApi连接数据库

1:pip install tortoise-orm2:pip install aiomysql3:pip install asyncmy或者使用国内清华园pip install -i https://pypi.tuna.tsinghua.edu.cn/simple asyncmy4:pip install aerich通过 python -m 直接运行(推荐&a…

Apache-web服务器环境搭建

目录 实验要求 思路总结 1.常规配置web服务 2.通过用户主页配置web服务 3.通过虚拟目录配置web服务 4.添加DNS解析服务,访问虚拟机域名: www.TestWeb.com 实验要求 (ip 192.168.48.130) 1、常规配置web服务 2、通过用户主页配置web服务 3、通过虚…

Altium Designer 25 安装与配置完整教程

本教程将带您一步步完成 Altium Designer 25 的下载、安装与激活配置 第一步:下载安装包 首先,需要获取 Altium Designer 25 的完整安装程序。 👉 下载链接: 百度网盘:百度网盘 请输入提取码 提取码: dxei 夸克网盘…

【工具】AndroidStudio修改中文语言汉化

AndroidStudio修改中文语言汉化 https://github.com/sollyu/AndroidStudioChineseLanguagePackhttps://github.com/sollyu/AndroidStudioChineseLanguagePack

代码随想录|图论|15并查集理论基础

并查集理论基础 | 代码随想录 并查集还是比较简单的,只要搞清楚两个事情: 并查集是干啥的?解决什么类型问题?并查集模板(背下来) 1、并查集是干啥的 并查集主要是两个功能: 两个元素添加到…

用MYSQL学习sql第一次总结和作业

总结 数据库(Database) 理解为“文件夹”,里面可以装很多张表。作业中要求先建一个名字叫 mydb6_product 的数据库。 表(Table) 理解为“Excel 工作表”,由“列(字段)”和“行&…

SQLite技术架构解析,适用场景有哪些?

一、SQLite技术架构解析 SQLite是一款轻量级、无服务器、嵌入式关系型数据库,其架构设计围绕“简化复杂性、提升效率”展开,核心由前端(SQL处理)、执行引擎(VDBE)、存储引擎(B-Tree)…

【Luogu】每日一题——Day3. P6392 中意 (数学 取模)

链接:P6392 中意 - 洛谷 题目: 思路: 数论这一块 题目让我们求这个结果对 MOD 取模,那么我们肯定是不像看到这个除法,所以考虑如何消除这个除法 我们可以想到,向上取整就是加上一个数,假设其为…

React强大且灵活hooks库——ahooks入门实践之DOM类hook(dom)详解

什么是 ahooks? ahooks 是一个 React Hooks 库,提供了大量实用的自定义 hooks,帮助开发者更高效地构建 React 应用。其中 DOM 类 hooks 是 ahooks 的一个重要分类,专门用于处理 DOM 相关操作,如事件监听、元素状态、拖…

GeoTools 工厂设计模式

前言使用GeoTools开发时有必要了解其工厂设计模式,作为软件开发核心设计模式,其设计思想具有普遍性和研究性。明白方法原理有助于提高开发效率,达到事半功倍的效果。1. 工厂模式 工厂模式(Factory Pattern)是面向对象中…