C#结构体、枚举类型及例题解析
结构体 ~struct
结构体⼀般定义在Main函数上⾯,位于Class下⾯,作为⼀个类;⼀般情况Struct定义在Main函数前⾯,Main函数⾥⾯的地⽅都可以使⽤,参数前⾯加上public代表公⽤变量。
格式:
struct +结构体的名称
{
public int+变量名;
public double+变量名;
public string+变量名;
}
以上就是定义⼀个结构体的格式,⾥⾯包含许多种数据类型,如整形int,字符串string,带⼩数点decimal等;
⽤法:
(1)在Main函数外⾯定义了⼀个student类型的结构体,在Main主函数中使⽤:
(2)然后为⾥⾯的每个元素赋值,结构体名+点+结构体⾥⾯变量名称=值。
(3)赋值之后完成之后进⾏打印。
枚举类型~{E}
定义:
枚举元素的默认基础类型为int。
默认情况下,第⼀个枚举数的值为0,后⾯每个枚举数的值依次递增1。
⽤法:枚举也可以指定数据类型,⼀般不指定。
在定义枚举类型时,可以选择基类型,但可以使⽤的基类型仅限于long、int、short和byte。
例题:
1、定义⼀个结构体,存放关于车辆的⼏个信息
将所有车的信息都放⼊集合中
型号价格(W)轴距(mm)油耗(L/100km)
宝马320Li          38              2920                      6.9
宝马520Li          43              3108                    7.2
宝马730Li            89              3210                      6.3
奥迪A4L35TFSI  31              2869                        6.2
江铃宝典皮卡车报价奥迪A6L30TFSI  43              3012                        7.6
奥迪A8L45TFSI  89              3122                        8.1
奔驰C200L          35              2920                        6.1
奔驰E260L          48              3014                        6.7
奔驰S320L          93              3165                        8
结构体:
struct car
{
public string xinghao;
public double jia;
public double zhou;
public double you;
}
ArrayList al = new ArrayList();
car car1 = new car();
car car2 = new car();
car car3 = new car();
car car4 = new car();
car car5 = new car();
car car6 = new car();
car car7 = new car();
car car8 = new car();
car car9 = new car();
car1.xinghao = "宝马320Li";
car1.jia = 38;
car1.zhou = 2920;
al.Add(car1);
car2.xinghao = "宝马520Li";
car2.jia = 43;
car2.zhou = 3108;
al.Add(car2);
car3.xinghao = "宝马730Li";
car3.jia = 89;
手动挡 自动挡car3.zhou = 3210;
bmw3
al.Add(car3);
car4.xinghao = "奥迪A4L35TFSI";
car4.jia = 31;
car4.zhou =2869;
al.Add(car4);
car5.xinghao = "奥迪A6L30TFSI";
car5.jia = 43;
car5.zhou = 3012;
al.Add(car5);
car6.xinghao = "奥迪A8L45TFSI";
car6.jia = 89;
car6.zhou = 3122;
al.Add(car6);
car7.xinghao = "奔驰C200L";
car7.jia = 35;
car7.zhou = 2920;
al.Add(car7);
car8.xinghao = "奔驰E260L";
car8.jia = 48;
car8.zhou = 3014;
al.Add(car8);
car9.xinghao = "奔驰S320L";
car9.jia = 93;
car9.zhou = 3165;
al.Add(car9);
1、现在想买⼀辆价格在50万以内的车,请给出车的型号以及价格            #region
欧朗怎么样for (int i = 0; i < al.Count; i++)
{
car c = (car)al[i];
if (c.jia < 50)
{
公安部111号令Console.WriteLine("型号:{0},价格{1}",c.xinghao,c.jia);
}
Console.ReadLine();
#endregion
2、买得起豪车,可是很关⼼油耗,给查⼀下油耗最低的三辆车的型号以及油耗情况
#region
for (int i = 0; i < al.Count; i++)
{
for (int j = i; j < al.Count - 1; j++)
{
car a = (car)al[i];
car b = (car)al[j+1];
if (a.you > b.you)
{
object zhong = al[i];
al[i] = al[j + 1];
al[j + 1] = zhong;
}
}
}
for (int i = 0; i < 3; i++)
{
car c = (car)al[i];
Console.WriteLine("油耗最低的第{0}辆车的型号是{1},油耗为{2}",i+1,c.u);
}
Console.ReadLine();
#endregion
3、买了车之后后座会经常坐⼈,所有我现在想要轴距⼤⼀些的车,前三名即可。要列出车的型号以及车的轴距            #region
for (int i = 0; i < al.Count; i++)
{
for (int j = i; j < al.Count - 1; j++)
{
car a = (car)al[i];
car b = (car)al[j + 1];
if (a.zhou < b.zhou)
{
object zhong = al[i];
al[i] = al[j + 1];
al[j + 1] = zhong;
}
}
}
for (int i = 0; i < 3; i++)
{
car c = (car)al[i];
Console.WriteLine("轴距最长的的第{0}辆车的型号是{1},轴距为{2}", i + 1, c.xinghao, c.zhou);
}
Console.ReadLine();
#endregion
5、有钱就是任性,就买最贵的,不买最好的,直接调出来最贵的车的所有信息
#region
double aa = 0;
for (int i = 0; i < al.Count; i++)
{
car a = (car)al[i];
if (aa < a.jia)
大众汽车品牌{
aa = a.jia;
}
}
for (int i = 0; i < al.Count; i++)
{
car a = (car)al[i];
if (a.jia==aa)
Console.WriteLine("最贵的车的型号是{0},价格是{1},轴距是{2},油耗是{3}",a.xinghao,a.jia,a.u);                }
}
Console.ReadLine();
#endregion