C# 当程序';满了吗? string[,]Arr=新字符串[4,5]{{“1A”、“2A”、“3A”、“4A”、“5A”}, {“1B”、“2B”、“3B”、“4B”、“5B”}, {“1C”、“2C”、“3C”、“4C”、“5C”}, {“1D”、“2D”、“3D”、“4D”、“5D”}; 控制台。WriteLine(“可用座位列表”); Console.WriteLine(); 对于(int j=0;j

C# 当程序';满了吗? string[,]Arr=新字符串[4,5]{{“1A”、“2A”、“3A”、“4A”、“5A”}, {“1B”、“2B”、“3B”、“4B”、“5B”}, {“1C”、“2C”、“3C”、“4C”、“5C”}, {“1D”、“2D”、“3D”、“4D”、“5D”}; 控制台。WriteLine(“可用座位列表”); Console.WriteLine(); 对于(int j=0;j,c#,C#,如果您需要“快速且脏”的解决方案,那么将fullyBooked变量声明移到main for循环之外,并将for循环的声明从for(int j=0;j

如果您需要“快速且脏”的解决方案,那么将
fullyBooked
变量声明移到main for循环之外,并将for循环的声明从
for(int j=0;j
 string[,] Arr = new string[4, 5]{{"1A" , " 2A" , " 3A" , " 4A" , " 5A"},
    {"1B" , " 2B" , " 3B" , " 4B" , " 5B"},
    {"1C" , " 2C" , " 3C" , " 4C" , " 5C"},
    {"1D" , " 2D" , " 3D" , " 4D" , " 5D"}};

        Console.WriteLine("List of availabe seats.");
        Console.WriteLine();

        for (int j = 0; j < Arr.Length; j++)
        {

            for (int i = 0; i < Arr.GetLength(0); i++)
            {
                for (int k = 0; k < Arr.GetLength(1); k++)
                {
                    Console.Write(Arr[i, k]);
                }
                Console.WriteLine();
            }

            Console.WriteLine("Enter your seat: ");
            Console.WriteLine("---------------- ");
            string textToReplace = Console.ReadLine().ToLowerInvariant();
            bool isFullyBooked = true;
            bool isSeatTaken = true;
            for (int row = Arr.GetLowerBound(0); row <= Arr.GetUpperBound(0); ++row)
            {
                for (int column = Arr.GetLowerBound(1); column <= Arr.GetUpperBound(1); ++column)
                {
                    if (Arr[row, column].ToLowerInvariant().Contains(textToReplace))
                    {
                        Arr[row, column] = " X ";
                        isSeatTaken = false;
                    }
                    if (!Arr[row, column].Contains(" X "))
                    {
                        isFullyBooked = false;
                    }
                }


            }
            if (isFullyBooked)
            {
                Console.WriteLine("Fully Booked");
                Console.WriteLine("----------------");
            }
            if (isSeatTaken)
            {
                Console.WriteLine("Already Taken");
                Console.WriteLine("----------------");
            }
        }
所以你的主循环将一直运行,直到所有的座位都被预订


但又是非常“快速和肮脏”的修复,考虑重构您的实现,因为它看起来不太好。(我想这里有点偏离主题,并且要服从)

分解您的实现:让<代码> Arr <代码>成为私有字段,添加属性或方法<代码>已被预订的以及<代码> ISSEATPATION(String Sead)
…也要使Arr成为
座位[,]
列表
(即制作您自己的座位等级)@Sayse:我宁愿使用
字典Arr
:如果座位有人或有人坐,键是座位和值not@DmitryBychenko-我的问题是,如果两个座位的座位号相同,它就会中断(例如
1A
位于较低层和阳台上)
bool isFullyBooked = false;
while (!isFullyBooked)
{
  // rest of your code, but change bool isFullyBooked = true; 
  // to simply isFullyBooked = true; without declaration, only assignment
  // because it was declared earlier