【问题标题】:Print out 1 object in a List of objects in C# [duplicate]在C#中的对象列表中打印出1个对象[重复]
【发布时间】:2020-03-23 00:17:53
【问题描述】:

我有一个包含多个对象的列表。 有什么方法可以打印出其中一个对象吗?

Console.WriteLine(myList.ElementAt(1));

这行代码没有给我对象。但是,它确实给了我类的名称。

【问题讨论】:

  • 您需要将对象属性一一打印出来。比如Console.WriteLine(myList.ElementAt(1).Name);。或者重写ToString 方法,但这通常不是正确的解决方案。
  • 您必须覆盖 .ToString()。为你的对象。然后你可以说 myList.ElementAt(1).ToString()
  • 默认情况下,ToString 返回类型的完全限定名称。如果您需要显示不同的内容(某些属性,例如名称),您需要覆盖它。如果您需要通用方法将所有对象属性打印到控制台,请参阅以下问题:stackoverflow.com/questions/852181/…

标签: c# list object


【解决方案1】:

你有两种方法。

  1. 单独访问属性

    var element = myList.ElementAt(1);
    Console.WriteLine("ID:{0}, Name:{1}", element.ID, element.Name);
    

  1. 或为类重载ToString()

    public class myObject
    {
        public int ID { get; set; }
        public string Name { get; set; }
    
        public override string ToString()
        {
            return string.Format("ID:{0}, Name:{1}", ID, Name);
        }
    }
    

    所以你可以

    Console.WriteLine(myList.ElementAt(1));
    

【讨论】:

  • @JohnCarlson 如果这个答案解决了问题,您应该接受它作为让其他用户知道的答案。
  • @Frauke 我试过了,但当时它不允许我这样做。刚回到我的电脑。答案被采纳! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2019-04-26
  • 2012-10-11
  • 1970-01-01
  • 2012-11-08
相关资源
最近更新 更多