C#二维数组使用for循环输出州与首府同换行问题求助
解决二维数组州与首府同行输出的问题
你的问题出在**Console.WriteLine会自动添加换行符**,而且内层循环遍历每个元素都调用它,导致州和首府各自单独占一行。以下是两种简单的修正方案:
方案一:直接访问每行的两个元素(最简洁)
因为你的数组固定每行存储「州+首府」两个元素,完全可以去掉内层循环,直接拼接两个值后整行输出:
string[,] places = { {"Connecticut", "Hartford"}, {"Delaware", "Dover"}, {"Kentucky", "Frankfort"}, {"Maryland", "Annapolis"}, {"Massachusetts", "Boston"}, {"Michigan", "Lansing"}, {"New Hampshire", "Concord"}, {"New Jersey", "Trenton"}, {"New York", "Albany"}, {"North Carolina", "Raleigh"}, {"Pennsylvania", "Harrisburg"}, {"Rhode Island", "Providence"}, {"South Carolina", "Columbia"}, {"Tennessee", "Nashville"}, {"Virginia", "Richmond"}, {"West Virginia", "Charleston"} }; for (int i = 0; i < places.GetLength(0); i++) { // 字符串插值拼接州和首府,一次性输出整行 Console.WriteLine($"{places[i, 0]} {places[i, 1]}"); }
方案二:保留内层循环,改用Console.Write控制换行
如果需要保留内层循环(比如适配每行元素数量不固定的场景),可以用Console.Write输出元素(不自动换行),每行遍历结束后手动换行:
string[,] places = { {"Connecticut", "Hartford"}, {"Delaware", "Dover"}, {"Kentucky", "Frankfort"}, {"Maryland", "Annapolis"}, {"Massachusetts", "Boston"}, {"Michigan", "Lansing"}, {"New Hampshire", "Concord"}, {"New Jersey", "Trenton"}, {"New York", "Albany"}, {"North Carolina", "Raleigh"}, {"Pennsylvania", "Harrisburg"}, {"Rhode Island", "Providence"}, {"South Carolina", "Columbia"}, {"Tennessee", "Nashville"}, {"Virginia", "Richmond"}, {"West Virginia", "Charleston"} }; for (int i = 0; i < places.GetLength(0); i++) { for (int j = 0; j < places.GetLength(1); j++) { Console.Write(places[i,j]); // 仅在非最后一个元素后添加空格 if (j != places.GetLength(1) - 1) { Console.Write(" "); } } // 每行元素输出完成后换行 Console.WriteLine(); }
内容的提问来源于stack exchange,提问作者Jazmin T
相关产品推荐
相关产品推荐

