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

本文详细介绍了C#中String、Math、Array、List、Dictionary、Math和File类的常用操作方法,包括字符串处理、数值计算、数组操作、列表动态管理、字典键值对、文件读写以及LINQ查询技巧,为C#开发者提供实用工具集。
摘要由CSDN通过智能技术生成

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

  • 69
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
#if !defined(AFX_CAR_H__85FED81E_252B_4F7D_BCB7_92A9ED40891F__INCLUDED_) #define AFX_CAR_H__85FED81E_252B_4F7D_BCB7_92A9ED40891F__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // Car.h : header file // #include "mapx.h" typedef struct{ char strID[11]; char strName[21]; int nType; StateType nState; double dMapX; double dMapY; double dSpeed; double dDirection; double dX; // 当前位置X坐标 double dY; // 当前位置Y坐标 long lFeaID; // 车辆符号的ID SelectType nSelect; }SCar; class CMapView; ///////////////////////////////////////////////////////////////////////////// // CCar command target class CCar : public CCmdTarget { DECLARE_DYNCREATE(CCar) public: CCar(); // protected constructor used by dynamic creation virtual ~CCar(); // Attributes public: // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CCar) //}}AFX_VIRTUAL // Implementation protected: // Generated message map functions //{{AFX_MSG(CCar) // NOTE - the ClassWizard will add and remove member functions here. //}}AFX_MSG DECLARE_MESSAGE_MAP() protected: CMapStringToPtr m_mapIdToCar; CMapX* m_pMapX; CMapXLayer* m_pLayer; SCar* m_pPick; SCar* m_pLock; UINT m_nSensitivity; BOOL m_bDisplayState; public: CStringArray m_straCarType; BOOL Initialize( CMapX* pMapX, CMapXLayer* pLayer ); void AddFeature( SCar* pCar ); void AddCar( SCar* pCar ); BOOL LoadCars( CString strSelect ); void DeleteFeature( SCar* pCar ); void DeleteCar( SCar* pCar ); BOOL DeleteCars( CString strSelect ); void UpdateFeature( SCar* pCar ); void UpdateCarDB( SCar* pCar ); void UpdateGraph(); SCar* GetCar( double X, double Y ); void Bind(); void UnBind(); UINT GetCarColor( SCar* pCar ); void Pick( SCar* pCar ); UINT UpdateStatus( CString strMapID, const LPBYTE lpData, DWORD dwCount ); UINT UpdateStatus(); void Lock(); void Unlock(); BOOL MotionDetect(); void Flash(); };
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值