C#列表反转后输出异常求助:如何正确反转并显示列表元素
解决C#列表反转后控制台输出类型名的问题
嘿,我来帮你搞定这个问题!其实你的列表声明和反转操作都没问题,问题出在你直接打印List对象的方式上。
当你调用Console.WriteLine(list)时,C#默认会调用List的ToString()方法,而这个方法的默认实现只会返回对象的类型名称(也就是你看到的System.Collections.Generic.List1[System.String]`),不会帮你遍历并输出列表里的元素。
几种正确的输出方式:
1. 使用string.Join拼接元素(最简洁)
把列表元素用分隔符(比如逗号+空格)拼接成一个字符串再输出:
class Program { static void Main(string[] args) { List<string> list = new List<string>(new string[]{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday"}); list.Reverse(); // 用逗号分隔拼接所有元素 Console.WriteLine(string.Join(", ", list)); Console.ReadLine(); } }
运行后会输出:Friday, Thursday, Wednesday, Tuesday, Monday
2. 用foreach循环逐个输出
如果想每个元素单独占一行,或者需要自定义输出格式,可以用foreach遍历:
class Program { static void Main(string[] args) { List<string> list = new List<string>(new string[]{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday"}); list.Reverse(); foreach (string day in list) { Console.WriteLine(day); } Console.ReadLine(); } }
这样会每行输出一个星期几。
总结一下:你的列表反转逻辑完全正确,只是输出时没有正确处理列表元素的展示,换成上面的方式就能看到预期结果啦!
内容的提问来源于stack exchange,提问作者Shaan Kulkarni
相关产品推荐
相关产品推荐

