你好,软糖来帮一下把,代码已完成且通过测试。
效果图
座椅类
public class 座椅 {
public 座椅(int v号码,int v背套颜色) { 号码 = v号码; 背套颜色 = v背套颜色; }
public int 号码;
public static string[] 背套颜色名称 = { "未知", "红色", "蓝色", "绿色" };
public int 背套颜色 = 0; //该数字表示第几号颜色
public void 更换背套颜色() {
if (背套颜色 == 0) { 背套颜色 = 1; return; }
if (背套颜色 == 1) { 背套颜色 = 2; return; }
if (背套颜色 == 2) { 背套颜色 = 3; return; }
if (背套颜色 == 3) { 背套颜色 = 0; return; }
}
public override string ToString() {
return string.Format("{0}号座椅({1})", 号码, 背套颜色名称[背套颜色]);
}
}
车厢类:带迭代器接口的
public class 车厢 : IEnumerable {
public List<座椅> 座椅集合 = new List<座椅>();
//迭代器
IEnumerator IEnumerable.GetEnumerator() {
return 座椅集合.GetEnumerator();
}
public 座椅 this[int 序号] {
get {
return 座椅集合.First(匹配座椅 => 匹配座椅.号码 == 序号);
}
}
/// 返回所有所有偶数号座椅
public List<座椅> 所有偶数号座椅() {
return 座椅集合.FindAll(匹配座椅 => (匹配座椅.号码 % 2) == 0);
}
public List<座椅> 更换偶数号座椅背套颜色() {
var 符合条件的座椅 = 所有偶数号座椅();
foreach (var 座椅 in 符合条件的座椅)
{
座椅.更换背套颜色();
}
return 符合条件的座椅;
}
}
控制台主程序:
class Program {
static void Main(string[] args) {
var 车厢 = new 车厢();
车厢.座椅集合.Add(new 座椅(1, 1));
车厢.座椅集合.Add(new 座椅(2, 1));
车厢.座椅集合.Add(new 座椅(3, 1));
车厢.座椅集合.Add(new 座椅(4, 2));
车厢.座椅集合.Add(new 座椅(5, 2));
车厢.座椅集合.Add(new 座椅(6, 2));
//显示所有座椅的编号和颜色
Console.WriteLine("火车车厢所有座椅:");
foreach (var 座椅 in 车厢.座椅集合)
{
Console.WriteLine(座椅.ToString());
}
//更换偶数号座椅背套颜色
Console.WriteLine("按任意键继续 - 更换偶数号座椅背套颜色: ");
Console.ReadKey(true);
//显示更换过座椅的编号和颜色
var 更换过的座椅 = 车厢.更换偶数号座椅背套颜色();
Console.WriteLine("火车车厢更换过的座椅:");
foreach (var 座椅 in 更换过的座椅)
{
Console.WriteLine(座椅.ToString());
}
Console.WriteLine();
Console.WriteLine("按回车键结束...");
Console.ReadLine();
}
}
满意请采纳,谢谢~~~