You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#打印List<Test>时输出类型名,如何正确打印列表对象?

C# 正确打印列表对象的解决方案

你看到的System.Collections.Generic.List1[Test]是List<T>默认ToString()方法的输出——List<T>没有重写该方法来展示内部元素;同时你的Test类如果未重写ToString`,直接打印单个对象也会输出类型名。以下是几种可行的解决方式:

方案1:给Test类重写ToString,再遍历打印

先给Test类重写ToString方法,自定义对象的输出格式:

public class Test
{
    public int ID { get; set; }
    public int Points { get; set; }

    public override string ToString()
    {
        return $"Test(ID: {ID}, Points: {Points})";
    }
}

之后遍历列表逐个打印元素:

static void Main(string[] args)
{
    List<Test> testList = GetTest();
    foreach (var item in testList)
    {
        Console.WriteLine(item);
    }
}

方案2:用string.Join一次性拼接输出

如果不想手动遍历,可通过string.Join把所有元素拼接成字符串后打印(同样需要Test类重写ToString):

static void Main(string[] args)
{
    List<Test> testList = GetTest();
    Console.WriteLine(string.Join(Environment.NewLine, testList));
}

方案3:不修改Test类,直接打印属性

如果无法修改Test类的代码,可在打印时直接访问对象属性拼接字符串:

static void Main(string[] args)
{
    List<Test> testList = GetTest();
    // 遍历打印
    foreach (var item in testList)
    {
        Console.WriteLine($"ID: {item.ID}, Points: {item.Points}");
    }

    // 或用LINQ+string.Join一次性打印
    Console.WriteLine(string.Join(Environment.NewLine, testList.Select(t => $"ID: {t.ID}, Points: {t.Points}")));
}

注意事项

你原代码里存在变量名错误:Main方法中定义的变量是Test(建议改成小驼峰testList符合C#命名规范),但打印时写的是Newlist,这会导致编译错误,需要修正为对应变量名。

内容的提问来源于stack exchange,提问作者Oklol2958

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:48:22