C#字符串、迭代语句学习

本文介绍了 C# 中的时间格式化、值类型与引用类型的选用原则、StringBuilder 的性能优势、foreach 语句的使用特点、string 与 String 的区别及字符串反转的实现方法。

1 时期时间输出格式规范

如 d 简短日期格式(YYYY-MM-dd),代码string.Format("{0:d}",str);需要在数字后面加冒号。C表示货币符号。

C#格式化时间、货币参考

http://blog.youkuaiyun.com/smeller/article/details/6893140

2 什么时候定义值类型,什么时候定义引用类型?

使用值类型的情况:

(1)类型具有基元类型的行为。也就是说,是十分简单的类型,没有成员会修改类型的任何实例字段;

(2)类型不需要从其他类型继承,也不派生出其他任何类型(因为值类型都是隐式密封的);

(3)类型的实例较小

(4)类型的实例较大(但不作为方法实参传递,也不从方法返回)

来源:http://www.cnblogs.com/LittleFeiHu/p/4489099.html

3 StringBuilder类的使用可以提升性能,因为对于字符的处理是在一个对象中进行,这是与String类的操作不同的地方。

4 foreach语句是C#中与C++不同的迭代语句。foreach遍历的是一个集合类型表达式,只能读取,不能修改集合内容,以免发生错误。

5 string和String的区别:

(1)String是.NET  Framework里面的String,小写的string是C#语言中的string;

(2)string是关键字,String是类,string不能作为类、结构、枚举、字段、变量、方法、属性的名称;

(3)用C#编写代码的情况下尽量使用小写的string,比较符合规范,如果在追求效率的情况下可以使用大写的String,因为最终通过编译后,小写的string会变成大写的String,可以给编译减少负荷,从而运行效率提高;

(4)string类型表示 Unicode 字符的字符串,string 是 .NET Framework 中的 String 的别名,对字符串相等性的测试更为直观。

6 字符串颠倒程序实现。不使用Reverse函数。


### C#字符串二维数组的实现与操作 在C#中,字符串二维数组是一种非常灵活的数据结构,它允许开发者通过行列索引来访问和管理多个字符串。下面详细介绍如何定义、初始化以及操作字符串二维数组。 #### 定义与初始化 在C#中,可以使用以下语法来定义一个字符串二维数组: ```csharp string[,] stringArray = new string[rows, cols]; ``` 这里的 `rows` 和 `cols` 分别表示二维数组的行数和列数。例如,定义一个3×4的字符串二维数组: ```csharp string[,] stringArray = new string[3, 4]; ``` 除了显式的大小定义外,还可以直接通过初始值列表来进行初始化[^2]。 ```csharp string[,] stringArray = { { "Hello", "World" }, { "This", "Is", "A", "Test" } }; ``` #### 访问元素 一旦定义好了一个字符串二维数组,就可以利用其两个维度的索引去访问具体的某个元素。注意,在C#里数组的索引是从零开始计数的。 ```csharp Console.WriteLine(stringArray[0, 1]); // 输出 "World" ``` #### 遍历所有元素 为了遍历整个二维数组中的每一个元素,可以采用嵌套循环的方法[^2]。 ```csharp for (int i = 0; i < stringArray.GetLength(0); i++) { for (int j = 0; j < stringArray.GetLength(1); j++) { Console.Write(stringArray[i, j] + " "); } Console.WriteLine(); } ``` 另外,也可以借助于 `foreach` 循环简化这一过程,不过这种方式会丢失掉具体的位置信息。 ```csharp foreach (string element in stringArray) { Console.WriteLine(element); } ``` #### 获取尺寸信息 可以通过调用 `.GetLength(dimension)` 方法获得指定维数上的长度[^2]。 ```csharp int rows = stringArray.GetLength(0); // 返回行数 int columns = stringArray.GetLength(1); // 返回列数 ``` #### 修改元素值 修改已有元素很简单,只需按照正常赋值语句的形式即可完成。 ```csharp stringArray[0, 1] = "Universe"; Console.WriteLine(stringArray[0, 1]); // 输出 "Universe" ``` #### 动态调整大小 需要注意的是,传统的二维数组一旦创建之后就无法改变其大小。如果需要动态扩展容量的话,则应该考虑使用更为高级的数据结构如List<List<string>> 或者 Dictionary 来代替固定大小的二维数组[^4]。 --- ### 示例程序 以下是一个完整的例子展示如何定义、初始化、访问以及打印一个简单的字符串二维数组。 ```csharp using System; class Program { static void Main() { // 创建并初始化一个3x2的字符串二维数组 string[,] cities = new string[, ]{ {"Beijing","China"}, {"Paris","France"}, {"Berlin","Germany"} }; // 使用双重for循环输出城市及其所在国家 for(int row=0;row<cities.GetLength(0);row++){ for(int col=0;col<cities.GetLength(1);col++) Console.Write(cities[row,col]+" "); Console.WriteLine(); } // 另一种方式:使用foreach迭代器 Console.WriteLine("\nUsing foreach:"); foreach(var cityInfo in cities){ Console.WriteLine(cityInfo); } // 查看特定位置的信息 Console.WriteLine($"\nThe capital of France is located at index [1,0]:{cities[1,0]}"); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值