1. 字符串一经创建,便不能以任何方式修改,只能修改引用。

2. ToLowerInvariant() 和 ToUpperInvariant() 以忽略语言文化的方式将字符串转换为小写或大写形式。性能比ToLower() 和 ToUpper()好。而且Microsoft对执行大写比较的代码进行了优化。

3. 语言文化是用System.Threading.Thread.CurrentCulture属性获得

4. Char 转换成int时,强制转换效率最高;System.Convert()效率次之,IConvertible接口效率最差(值类型上调用接口方法要求对实例进行装箱)

5. 不建议硬编码 \r\n,应使用System.Environment.NewLine,不同的平台可能返回不同。

6. 字符串连接时不要使用+操作符,这样会在堆上创建多个字符串对象,而堆是需要垃圾回收的,对性能有影响。建议使用 System.Text.StringBuilder类型

7. 判断相等性时使用Ordinal和OrdinalIgnoreCase标志,忽略语言文化比较最快;

8. 避免使用==和!=操作符比较,因为调用者不显示指出以什么方式执行字符串比较。CompareTo默认执行对语言文化敏感的比较。Equals执行普通的序号比较。

9. 字符串留用,Intern() 和 IsInterned(),内部hash表,Key是字符串,value是引用。

CLR via C# 笔记 -- 字符、字符串、文本处理(14)的更多相关文章

  1. <NET CLR via c# 第4版>笔记 第14章 字符,字符串和文本处理

    14.1 字符 三种数值类型与 Char 实例的相互转换: static void Main() { Char c; Int32 n; //方法一: 通过C#转型(强制类型转换)实现数字与字符的相互转 ...

  2. [Clr via C#读书笔记]Cp14字符字符串和文本处理

    Cp14字符字符串和文本处理 字符 System.Char结构,2个字节的Unicode,提供了大量的静态方法:可以直接强制转换成数值: 字符串 使用最频繁的类型:不可变:引用类型,在堆上分配,但是使 ...

  3. 重温CLR(十) 字符、字符串和文本处理

    本章将介绍.net中处理字符和字符串的机制 字符 在.NET Framewole中,字符总是表示成16位Unicode代码值,这简化了国际化应用程序的开发. 每个字符都表示成System.Char结构 ...

  4. 「学习笔记」字符串基础:Hash,KMP与Trie

    「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...

  5. CSS学习笔记:溢出文本省略(text-overflow)

    原文:CSS学习笔记:溢出文本省略(text-overflow) 在CSS3中,text-overflow属性的基本语法如下: clip:表示不显示省略文本,简单的裁切. ellipsis:表示对象文 ...

  6. 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...

  7. 【学习笔记】字符串—马拉车(Manacher)

    [学习笔记]字符串-马拉车(Manacher) 一:[前言] 马拉车用于求解连续回文子串问题,效率极高. 其核心思想与 \(kmp\) 类似:继承. --引自 \(yyx\) 学姐 二:[算法原理] ...

  8. 逆向中静态分析工具——IDA初学者笔记之字符串分析

    逆向中静态分析工具——IDA初学者笔记之字符串分析 程序中往往包含很多字符串资源,这些资源存在于PE文件的rdata段,使用IDA反编译后,可以查找到这些字符串, 逆向破解程序通常需要一个突破点,而这 ...

  9. 随机生成指定长度字符字符串(C语言实现)

    相关函数 srand(), rand()头文件#include<stdlib.h> 定义函数 int rand(void) 函数说明 rand()会返回一随机数值,范围在0至RAND_MA ...

  10. Java字符字符串类

    Java字符字符串类 Character 类 Character 类用于对单个字符进行操作.Character 类在对象中包装一个基本类型 char 的值在实际开发过程中,我们经常会遇到需要使用对象, ...

随机推荐

  1. k8s控制节点etcd删除并重新加入

    官方参考:https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/configure-upgrade-etcd/ 1.删除etcd节点 cd ...

  2. C语言结构体的内存分配

    一.结构体内存分配原则 原则一:结构体中元素按照定义顺序存放到内存中,但并不是紧密排列.从结构体存储的首地址开始 ,每一个元素存入内存中时,它都会认为内存是以自己的宽度来划分空间的,因此元素存放的位置 ...

  3. js的几个截取

    jsfun(){         let str = '01234567'         let str1         str1 = str.slice(2,5)                 ...

  4. Ollama开发指南

    安装必备工具 确保已安装以下软件的正确版本: CMake 3.24 或更高版本 Go 1.22 或更高版本 GCC 11.4.0 或更高版本 使用 Homebrew 安装这些工具(适用于macOS和L ...

  5. C++ 构造函数和析构函数(Constructors & Destructors)

    一.定义: 当object产生,有一个特殊的称为constructor的函数会自动执行.当object死亡,有一个特殊的称为destructor的函数会自动执行.Constructor 可以不只一个, ...

  6. NASM中的Preprocessor

    NASM中的Preprocessor都以%开头. 单行macro %define %define与C语言中的#define类似: %define a(x) 1+b(x) %define b(x) 2* ...

  7. Splashtop 支持对 Adobe Creative Cloud 视频应用程序的远程访问

    快讯:Splashtop 为 Adobe Creative Cloud 视频和音频产品的用户提供了对其工作站的高性能远程访问,使他们能够在家中工作. 程访问和远程支持解决方案的领导者 Splashto ...

  8. .NET ASPIRE 预览版 7 发布

    .NET Aspire 预览版 7 并不是原计划的一部分,此预览版有很多重大 API 更改,部分原因是一旦产品发布,我们将致力于稳定的 API 表面.可以说,Aspire团队希望确保在最终发布之前完成 ...

  9. SaltStack 常用的一些命令

    以下是 SaltStack 常用的一些命令: 查看帮助信息:salt --help检查Salt支持的操作系统:salt '*' test.ping查看Minion的版本号:salt '*' test. ...

  10. js毫秒转时分秒

    const formatSeconds = (value) => { if (value === 0 || value < 1000) return '0秒'; var timestamp ...