c# - 将存储在类列表中的信息打印到控制台
问题描述
我是 C# 初学者,我正在尝试学习一般的编码基础知识,因为我是新手。我一直在看一些教程,并决定开始编写一个简单的代码,并在我了解更多时改进/添加更多能力。
目前我正在创建一个简单的数据库,我可以在其中存储一些关于人的信息。我决定尝试为此使用类,但在打印存储在列表中的数据时遇到了问题。
我试过Console.WriteLine(people.ToString());
了,但没有用。
我试图合并string.Join(delimiter, list.Select(i => i.Boo).ToArray())
我在另一篇文章中找到的内容,但没有这样做。
class Program
{
static void Main(string[] args)
{
List<Person> people = new List<Person>();
Console.Write("How many people are to be stored?: ");
int personCount = Convert.ToInt32(Console.ReadLine());
for (int i=1; i<=personCount; i++)
{
Console.Write("Name of person "+ i + ":");
string nameInput=Console.ReadLine();
Console.Write("Age of "+ nameInput +": ");
int ageInput= Convert.ToInt32(Console.ReadLine());
Console.Write("Height of " + nameInput + ": ");
double heightInput = Convert.ToDouble (Console.ReadLine());
people.Add(new Person(nameInput, ageInput, heightInput));
}
// here goes (i think) the code to type info stored in list
Console.WriteLine("Press ENTER to close.");
Console.ReadLine();
}
}
class Person
{
public string name;
public int age;
public double height;
public Person(string name, int age, double height)
{
this.name = name;
this.age = age;
this.height = height;
}
}
我想要一个信息列表,但我只得到以下信息:
System.Collections.Generic.List
1[研究.人]`
任何帮助将不胜感激。
解决方案
您需要覆盖类中的ToString方法Person
并在那里处理输出。
Object.ToString 方法返回:
表示当前对象的字符串。
这基本上是您的对象(人)的字符串表示形式。默认情况下,它将返回完整的类名,包括命名空间。当你将一个像人这样的对象传递给Console.WriteLine
(它需要一个string
作为参数)时,它会自动调用ToString
框架中每个对象继承自的方法Object
。这应该解释您的输出:
System.Collections.Generic.List
当你使用Console.WriteLine(people.ToString());
. 它调用继承自的ToString
方法并打印全名。List
Object
如果您在课堂上覆盖它,它将采用您的版本,您可以确定输出的外观
class Person
{
public string name;
public int age;
public double height;
public Person(string name, int age, double height)
{
this.name = name;
this.age = age;
this.height = height;
}
public override string ToString()
{
return $"Name: {name} Age: {age} Height: {height}";
}
}
现在你可以使用string.Join
Console.WriteLine(String.Join(Environment.NewLine, people));
推荐阅读
- c# - .NET Core Windows Forms 应用程序:在 Visual Studio 2019 工具箱中找不到 System.Timers.Timer
- r - R中iGraph中顶点之间的间距
- controls - 如何在 scilab 程序(不是 xcos)中模拟干扰
- python - 默认值错误 Python,ipywidgets:将模型链接到小部件时
- visual-studio-code - VS Code 开发容器和企业代理
- julia - 在工人 2 上:UndefVarError
- sql - 在 PostgreSQL 中,有没有办法自动对查询施加限制?
- css - 多个粘性元素在 Firefox 中消失
- java - 如何使用 ROLES 正确保护端点?
- python - np.where 有两个条件