C#入门:枚举、结构体与字符串反向输出实战

Jasper
Jasper
发布时间:2026-10-15 | 4人浏览过
原创

本文详细介绍C#基础数据结构,包括枚举、结构体、数组的定义与使用,以及字符串的常用处理方法。通过具体的控制台代码示例,演示如何将用户输入的字符串以相反方向输出,帮助初学者掌握基础语法与实际应用。

枚举与结构体的定义及应用

第一步:声明并使用枚举

枚举(enum)用于定义一组固定的常量,通常用于表示具有有限选项的状态,如星期、方位等。枚举默认从0开始递增,也可指定起始值或基础类型。

enum myWeekDay { Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday };
int i = 3;
myWeekDay today = (myWeekDay)i;

在赋值时,若将整型变量转换为枚举类型,需进行强制类型转换。例如:today = (myWeekDay)myByte。枚举建议声明在命名空间下,也可放在类或结构中。

第二步:创建并使用结构体

结构体(struct)允许组合不同的数据类型,适用于需要存储多个相关属性的对象。以下示例结合枚举与结构体,模拟路线记录:

enum orientation : byte { north = 1, south = 2, east = 3, west = 4};
struct route
{
    public orientation direction;
    public double distance;
}

使用时,先声明结构体变量,再通过public成员访问器设置值。注意枚举到基本类型的转换逻辑:

route myRoute;
int myDirection = -1;
double myDistance;
Console.WriteLine("1) North\n2) South\n3) East\n4) West");
do
{
    Console.WriteLine("请选择一个行驶方向:");
    myDirection = Convert.ToInt32(Console.ReadLine());
} while (myDirection < 1 || myDirection > 4);

Console.WriteLine("请输入一个距离:");
myDistance = Convert.ToDouble(Console.ReadLine());
myRoute.direction = (orientation)myDirection;
myRoute.distance = myDistance;
Console.WriteLine("指定方向 {0} 的距离是 {1}", myRoute.direction, myRoute.distance);

数组的声明、初始化与遍历

第三步:一维数组的基础操作

数组可用于存储同类型数据的集合。声明方式包括仅指定大小或直接初始化内容:

string[] friendNames = new string[5]; // 仅初始化大小
string[] friendNames = {"张三","李四","王五"}; // 直接初始化内容

访问元素从索引0开始。推荐使用foreach进行只读遍历,避免越界风险:

foreach (string myStr in friendNames)
{
    Console.WriteLine(myStr);
}

第四步:处理多维与锯齿数组

矩形数组每行元素个数相同,而锯齿数组(Jagged Array)每行长度可不同。遍历锯齿数组需嵌套循环:

int[][] jaggedIntArray = { new int[] { 1, 2, 3 }, new int[] { 4, 5 } };
foreach(int[] topArray in jaggedIntArray)
{
    foreach (int bottomArray in topArray)
    {
        Console.Write("{0} ", bottomArray);
    }
    Console.Write("\n");
}

注意区分括号符号,数组维度使用[],初始化列表使用{}。

字符串处理的常用方法

第五步:字符访问与格式转换

字符串可通过索引访问单个字符(从0开始),或使用ToCharArray()转换为字符数组。大小写转换方法如下:

String myString = " Hello World ";
char myChar = myString[1];
// 注意:ToLower/ToUpper不改变原变量,需重新赋值
myString = myString.ToLower();

第六步:修剪与分割字符串

Trim()去除首尾空格,也可传入字符数组去除特定字符。Split()根据分隔符拆分字符串:

String myString = " sfrost/110110200010101100-13090909880 ";
char[] delimiters = {'-', '/'};
String[] parts = myString.Trim().Split(delimiters);
// 输出结果将被拆分为多部分,适用于解析用户输入信息

实战案例:字符串反向输出

以下示例演示如何接收用户输入的字符串,并按相反顺序输出。核心逻辑是从字符串末尾向前遍历并拼接字符:

Console.WriteLine("请输入需要交换位置的字符串:");
String input = Console.ReadLine().Trim();
String reversed = "";
for (int i = input.Length; i > 0; i--)
{
    reversed += input[i-1];
}
Console.WriteLine("反向输出:" + reversed);

此外,还可练习使用Replace()替换子串,或使用Split()结合引号包裹单词等操作,进一步熟悉字符串处理能力。

简要总结

通过枚举、结构体和数组,可以构建清晰的数据模型;而字符串处理则是交互应用的核心。掌握这些基础概念,有助于解决实际问题。以上就是C#入门之枚举和结构体使用的详细内容,更多关于C#基础教程的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表