C#常用数据操作方法详解

文章目录

  • C#常用数据操作方法详解
    • 字符大师:String类的使用艺术
      • 字符串截取:Substring示例
      • 寻找字符串:IndexOf示例
      • 字符串替换:Replace示例
      • 字符串分割:Split示例
      • 转小写:ToLower示例
    • 数学机械师:Math类的数值操作
      • 绝对值:Abs示例
      • 取整:Ceiling与Floor示例
      • 最大最小值:Max与Min示例
      • 指数幂:Pow示例
      • 四舍五入:Round示例
    • 数组画家:Array类的绘制与变换
      • 数组排序:Sort示例
      • 二分查找:BinarySearch示例
      • 数组清除:Clear示例
      • 数组复制:Copy示例
      • 反转数组:Reverse示例
    • 列表专家:List类的动态数组操作
      • 添加元素:Add示例
      • 删除元素:Remove示例
      • 查找元素:Find示例
    • 字典大观园:Dictionary的键值对存储
      • 添加键值对:Add示例
      • 访问元素:索引器示例
    • 文件操作符:File类的读写操作
      • 读取全部文本:ReadAllText示例
      • 写入全部文本:WriteAllText示例
    • LINQ—语言集成查询:查询数据的现代方式
      • 筛选列表:Where示例
      • 转换元素:Select示例
      • 聚合操作:Aggregate示例

C#常用数据操作方法详解

在C#编程中,无论我们是在处理文本、执行数学计算还是操作数据结构,都依赖于一系列强大的内置方法。在这篇文章中,我们将一探究竟,看看如何使用String类、Math类和Array类的一些常用方法来简化我们的代码和提高效率。

专栏里有C#基础教程,关注不迷路!

字符大师:String类的使用艺术

字符串截取:Substring示例

当您想从一个存在的字符串中获取某个特定部分时,Substring 方法成为了您的快速工具。

string greeting = "Hello, World!";
string sub = greeting.Substring(7, 5); // "World"

寻找字符串:IndexOf示例

当需要获取某个特定子字符串在字符串中的位置时,IndexOf 方法是您的搜索灯塔。

string phrase = "The quick brown fox jumps over the lazy dog";
int indexOfFox = phrase.IndexOf("fox"); // 16

字符串替换:Replace示例

Replace 方法可以将字符串中的某个子字符串替换成您希望的新内容。

string sentence = "I love apples";
string newSentence = sentence.Replace("apples", "oranges"); // "I love oranges"

字符串分割:Split示例

Split 将字符串分割成子字符串数组,这在处理逗号分隔值(CSV)或其他数据格式时特别有用。

string data = "apple,banana,cherry";
string[] fruits = data.Split(','); // {"apple", "banana", "cherry"}

转小写:ToLower示例

ToLower 可以将所有大写字符转换为小写,使得不区分大小写的字符串比较变成可能。

string mixedCase = "JavaSCript";
string lowerCase = mixedCase.ToLower(); // "javascript"

数学机械师:Math类的数值操作

绝对值:Abs示例

数学计算常常需要绝对值,Abs 方法就是为此而生。

int negative = -123;
int positive = Math.Abs(negative); // 123

取整:Ceiling与Floor示例

CeilingFloor 分别返回大于或等于、小于或等于指定数字的最接近的整数。

double number = 10.7;
double ceiling = Math.Ceiling(number); // 11
double floor = Math.Floor(number); // 10

最大最小值:Max与Min示例

从两个数值中选择最大或最小值,MaxMin 方法能一决胜负。

int a = 23;
int b = 42;
int max = Math.Max(a, b); // 42
int min = Math.Min(a, b); // 23

指数幂:Pow示例

Pow 使计算一个数的指数变得轻而易举。

double baseValue = 3;
double power = 4;
double result = Math.Pow(baseValue, power); // 81

四舍五入:Round示例

当您需要将一个浮点数舍入到最接近的整数时,Round 是您的计数器。

double pi = 3.14159;
double roundPi = Math.Round(pi); // 3

数组画家:Array类的绘制与变换

数组排序:Sort示例

Sort 方法可以帮助我们将数组中的元素进行排序,让查找和管理变得更加容易。

int[] scores = { 90, 71, 82, 93, 75, 82 };
Array.Sort(scores); // {71, 75, 82, 82, 90, 93}

二分查找:BinarySearch示例

对于一个已排序的数组,BinarySearch 方法提供了快速的查找功能。

int[] arr = { 1, 4, 7, 9, 12, 15 };
int index = Array.BinarySearch(arr, 9); // 3

数组清除:Clear示例

要快速地将数组中的一段设为默认值,用 Clear 就对了。

char[] letters = { 'A', 'B', 'C', 'D', 'E', 'F' };
Array.Clear(letters, 1, 2); // {'A', '\0', '\0', 'D', 'E', 'F'}

数组复制:Copy示例

复制数组的一部分到另一个数组可以通过 Copy 方法完成。

int[] source = { 1, 2, 3, 4, 5 };
int[] destination = new int[5];
Array.Copy(source, destination, source.Length); // {1, 2, 3, 4, 5}

反转数组:Reverse示例

Reverse 方法用于数组的翻页,将数组元素的顺序调转。

int[] array = { 1, 2, 3, 4, 5 };
Array.Reverse(array); // {5, 4, 3, 2, 1}

C# 中的 .NET 框架有着海量的类和方法,可以进行非常广泛的数据操作。除了前文提及的 StringMath,和 Array 类,还有很多其他常用的类和方法,比如 ListDictionaryFileLINQ 等。让我们继续探索。

列表专家:List类的动态数组操作

添加元素:Add示例

List<T> 类提供了 Add 方法,用于向列表末尾添加元素。

List<string> fruits = new List<string>();
fruits.Add("apple"); // List now contains "apple"

删除元素:Remove示例

利用 Remove 方法可以从列表中移除特定的元素。

fruits.Remove("apple"); // "apple" is now removed from the list

查找元素:Find示例

Find 用于从列表中查找符合特定条件的第一个元素。

string found = fruits.Find(f => f.StartsWith("a")); // Finds the first fruit starting with "a"

字典大观园:Dictionary的键值对存储

添加键值对:Add示例

Dictionary<TKey, TValue> 类提供了 Add 方法,用于添加键值对到集合。

Dictionary<string, int> ages = new Dictionary<string, int>();
ages.Add("Alice", 25); // Dictionary now contains Alice's age

访问元素:索引器示例

可以通过其键直接访问 Dictionary 中的元素。

int aliceAge = ages["Alice"]; // 25

文件操作符:File类的读写操作

读取全部文本:ReadAllText示例

File 类提供了 ReadAllText 方法,用于读取文件的全部内容为一个字符串。

string content = File.ReadAllText(@"C:\path\to\file.txt"); // Reads all text in file.txt

写入全部文本:WriteAllText示例

WriteAllText 方法将一个字符串写入文件中,如果文件不存在,将会创建它。

File.WriteAllText(@"C:\path\to\file.txt", "Hello, World!"); // Writes "Hello, World!" to file.txt

LINQ—语言集成查询:查询数据的现代方式

筛选列表:Where示例

使用 Where 方法可以根据条件筛选序列中的元素。

var evenNumbers = new List<int> { 1, 2, 3, 4, 5, 6 }.Where(n => n % 2 == 0); // { 2, 4, 6 }

转换元素:Select示例

Select 方法允许我们对序列中的每个元素应用一个函数,并返回一个包含结果的新序列。

var squares = new List<int> { 1, 2, 3, 4, 5 }.Select(n => n * n); // { 1, 4, 9, 16, 25 }

聚合操作:Aggregate示例

Aggregate 方法可以将序列中的元素以某种方式进行累积。

int sum = new List<int> { 1, 2, 3, 4, 5 }.Aggregate(0, (acc, val) => acc + val); // 15

这些方法只是C#中可供使用的诸多便利工具的冰山一角。在C#的储藏室里,集合操作、文件处理、网络服务访问、多线程处理等等方面都有相应的类和方法,可以帮助你的代码更高效、更简洁、也更加强大。

而且,随着 .NET 版本的不断更新迭代,微软也在不断地增加更多新颖且有帮助的工具和方法来丰富我们的开发工具箱。掌握这些基本工具的同时,随时留意新的变化和添加,将有助于保持你的技能前沿和竞争力。

在C#的强大库中,这些工具提供了一个非常实用的基础。掌握这些方法,就相当于在编程道路上装备了一系列精准的工具。通过这些示例,我们希望您能感受到每个方法的强大之处,它们在软件开发中的应用几乎无所不在。欢迎在代码的世界里大胆探索和应用这些方法,它们会为您的编程增添无穷的便捷与可能!

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

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

相关文章

Java 设计模式系列:行为型-观察者模式

简介 观察者模式是一种行为型设计模式&#xff0c;又被称为发布-订阅&#xff08;Publish/Subscribe&#xff09;模式&#xff0c;它定义了对象之间的一对多依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都会得到通知并被自动更新。 观察者…

全面解析 Axios 请求库的基本使用方法

Axios 是一个流行的基于 Promise 的 HTTP 请求库&#xff0c;用于在浏览器和 Node.js 中进行 HTTP 请求。它提供了简单易用的 API&#xff0c;可以发送各种类型的请求&#xff08;如 GET、POST、PUT、DELETE等&#xff09;&#xff0c;并处理响应数据&#xff0c;Axios 在前端工…

MySQL常见的数据类型

一、数值型 5 种整型 tinyint、smallint、mediumint、int 和 bigint&#xff0c;主要区别就是取值范围不同&#xff0c;还可以在类型前添加一个 限制词 unsigned&#xff0c;不允许添加负数。 3 种浮点型&#xff1a;不能精确存放 float 和 double&#xff0c;可以精确存放 de…

朋友,代码库的“健身方案”要不要了解一下?

你有没有想过&#xff0c;你的代码库可能正面临“健康危机”—— 代码臃肿、低效交付、BUG隐藏、潜藏的安全风险…… “健身达人”上线 如果你的开发、安全和运维团队像是三位“健身达人”&#xff0c;那么极狐GitLab的DevSecOps线上成熟度评估&#xff0c;就是他们的“健身教…

09、用数据变量等控制 vue 项目标签中 CSS 样式的五种方法

通过 vue 中的变量值控制标签/组件样式 Ⅰ、通过 Vue3 的数据变量来控制 h1 标签样式&#xff1a;1、代码为&#xff1a;2、截图为&#xff1a; Ⅱ、通过 vue3 的 computed 来控制 h1 标签样式&#xff1a;1、代码为&#xff1a;2、截图为&#xff1a; Ⅲ、通过 vue3 的 comput…

MySQL gh-ost DDL 变更工具

文章目录 1. MDL 锁介绍2. 变更工具3. gh-ost 原理解析4. 安装部署5. 操作演示5.1. 重点参数介绍5.2. 执行变更5.3. 动态控制 6. 风险提示 1. MDL 锁介绍 MySQL 的锁可以分为四类&#xff1a;MDL 锁、表锁、行锁、GAP 锁&#xff0c;其中除了 MDL 锁是在 Server 层加的之外&am…

SpringBoot vue轮胎批发系统

SpringBoot vue轮胎批发系统 系统功能 首页 图片轮播 轮胎商品 评论 公告信息 搜索 购物车 立即购买 客服中心 登录注册 个人中心 我的订单 我的地址 我的收藏 后台管理 登录 个人中心 用户管理 轮胎分类管理 轮胎商品管理 公告信息管理 客服中心管理 轮播图管理 订单管理 …

Linux--基本知识入门

一.几个基本知识 终端: CtrlAltT 或者桌面/文件夹右键,打开终端切换为管理员: sudo su 退出:exit查看内核版本号: uname -a内核版本号含义: 5 代表主版本号;13代表次版本号;0代表修订版本号;30代表修订版本的第几次微调;数字越大表示内核越新. 二.目录…

Canny详解

Canny 边缘检测是一种经典的图像处理技术&#xff0c;被广泛应用于计算机视觉和图像处理领域。它由 John F. Canny 在 1986 年提出&#xff0c;是一种多阶段的边缘检测算法&#xff0c;具有高精度和低错误率的特点。 Canny 边缘检测的步骤&#xff1a; 高斯滤波&#xff08;Ga…

FreeRTOS学习第10篇--队列使用示例

FreeRTOS学习第10篇–队列使用示例 本文目标&#xff1a;FreeRTOS学习第10篇–队列使用示例 按照本文的描述&#xff0c;可以进行简单的使用队列。 本文实验条件&#xff1a;拥有C语言基础&#xff0c;装有编译和集成的开发环境&#xff0c;比如&#xff1a;Keil uVision5 …

【Java 并发】AbstractQueuedSynchronizer

1 AQS 简介 在同步组件的实现中, AQS 是核心部分, 同步组件的实现者通过使用 AQS 提供的模板方法实现同步组件语义。 AQS 则实现了对同步状态的管理, 以及对阻塞线程进行排队, 等待通知等一些底层的实现处理。 AQS 的核心也包括了这些方面: 同步队列, 独占式锁的获取和释放, 共…

手写vue将虚拟 Dom 转化为真实 Dom

vue将虚拟 Dom 转化为真实 Dom {tag: DIV,attrs:{id:app},children: [{tag: SPAN,children: [{ tag: A, children: [] }]},{tag: SPAN,children: [{ tag: A, children: [] },{ tag: A, children: [] }]}] }把上面虚拟Dom转化成下方真实Dom<div id"app"><sp…

做一个微信小程序需要什么条件?

在移动互联网时代&#xff0c;微信小程序已成为连接用户与服务的重要桥梁。它们无需下载安装&#xff0c;使用方便&#xff0c;功能强大&#xff0c;成为商家和开发者的新宠。如果你想要开发一个微信小程序&#xff0c;需要满足哪些条件&#xff1f; 一、开发小程序的基本条件…

Redis 持久化-RDB

RDB&#xff08;Redis DataBase&#xff09;&#xff0c;在指定的时间间隔内将内存中的数据集快照写入磁盘&#xff0c;也就是行话讲的Snapshot快照&#xff0c;它恢复时是将快照文件直接读到内存里。 Redis会单独创建&#xff08;fork&#xff09;一个子进程来进行持久化&…

用网格大师网络重划分时,坐标原点按照XML文件原点填写,导出的瓦块文件命名不对,坐标原点该怎么填写

瓦块名称和原来不一致的原因是瓦块原点这里设置的不对&#xff0c;要和重建设置的瓦块原点保持一致。 网格大师是一款能够解决实景三维模型空间参考、原点、瓦块大小不统一&#xff0c;重叠区域处理问题的工具“百宝箱”&#xff0c;集格式转换、坐标转换、轻量化、瓦片重划分…

ModStartBlog v9.1.0 桌面快捷应用,图片上传前端压缩

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场&#xff0c;后台一键快速安装 …

跨境电商流通无阻:API接口在简化全球电商流程中的关键角色

在全球化的经济中&#xff0c;跨境电商已成为许多电商平台的重要增长点。然而&#xff0c;跨国交易涉及复杂的流程和合规性要求&#xff0c;这些都可能成为商家扩张全球市场的障碍。API&#xff08;应用程序编程接口&#xff09;在这里扮演了关键角色&#xff0c;它简化了全球电…

淘宝商品销量数据接口,淘宝API接口

淘宝商品销量数据接口是淘宝开放平台提供的一种API接口&#xff0c;通过该接口&#xff0c;商家可以获取到淘宝平台上的商品销量数据。 淘宝商品销量数据接口可以用于获取特定商品的销量数据、特定店铺的销量数据、特定类目的销量数据等。商家可以根据自己的需求来调用该接口&…

控制学习_正弦波无刷直流力矩电机建模、控制带宽讨论与选择

无刷电机通过电子换向器实现定子的磁场旋转&#xff0c;去电刷后使用寿命大幅提升&#xff0c;是现在更流行的选择。三相无刷电机则是无刷电机中比较流行的一款。三相无刷电机的驱动方式有多种&#xff0c;最简单的被称为梯形波驱动、方波驱动或正弦波驱动。而正弦波驱动技术可…

前端路由跳转bug

路由后面拼接了id的千万不能取相近的名字&#xff0c;浏览器分辩不出&#xff0c;只会匹配前面的路径 浏览器自动跳转到上面的路径页面&#xff0c;即使在菜单管理里面配置了正确的路由 跳转了无数次&#xff0c;页面始终不对&#xff0c;检查了路由配置&#xff0c;没有任何问…