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

使用List<Test>时如何打印列表中对象的Name与Address?

解决控制台打印Test对象属性的问题

嘿,看你代码里Console....这里没写完,应该是卡在怎么正确输出对象的Name和Address属性上了对吧?你的整体思路没问题,就是输出部分没处理对,直接打印对象实例的话,C#默认只会输出类的类型名称,而不是你要的属性值。

修正后的完整代码

using System;
using System.Collections.Generic;

public class Test 
{ 
    public string Name { set; get; } 
    public string Address { set; get; } 
} 

class Program
{
    static void Main(string[] args) 
    { 
        Test t = new Test(); 
        t.Name = "bob"; 
        t.Address = "CT"; 
        List<Test> lst = new List<Test>(); 
        lst.Add(t); 
        
        foreach (var x in lst) 
        {
            // 最简洁的字符串插值写法,直接输出属性值
            Console.WriteLine($"姓名:{x.Name},地址:{x.Address}");
            
            // 也可以用传统字符串拼接,效果一样
            // Console.WriteLine("姓名:" + x.Name + ",地址:" + x.Address);
        }
        
        // 加这句让控制台窗口停留,方便看结果
        Console.ReadLine();
    }
}

关键说明

  • 在foreach循环里,x是Test类的实例对象,必须通过x.Name、x.Address明确访问属性,不能直接打印x本身。
  • 我用了C#的字符串插值($""语法),这是现在最常用的简洁写法,当然你也可以用传统的+拼接字符串,代码里注释了另一种可选写法。
  • 最后加Console.ReadLine()是为了避免控制台程序运行后直接关闭,能让你看清输出内容。

如果以后想直接打印对象就输出属性信息,还可以给Test类重写ToString()方法,这样代码会更优雅:

public class Test 
{ 
    public string Name { set; get; } 
    public string Address { set; get; } 

    // 重写ToString,自定义对象的打印内容
    public override string ToString()
    {
        return $"姓名:{Name},地址:{Address}";
    }
}

这时候foreach里直接写Console.WriteLine(x);就能得到你想要的输出啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:36:44