【发布时间】:2020-08-05 00:08:06
【问题描述】:
我想要一个程序将有关人员的信息写入 C# 中的文件...所以我有以下类
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
写入文件的类是这个:
class Adding
{
public static void AddedPersons(List<Person> persons,string path)
{
List<string> content = new List<string>();
content.Add("FirstName , LastName");
foreach (var person in persons)
{
content.Add($"{person.FirstName}, {person.LastName}");
}
System.IO.File.WriteAllLines(path,content);
}
}
还有主要的方法……
static void Main(string[] args)
{
List<Person> persons = new List<Person>();
string path = @"C:\Users\cosmi\Desktop\Citire\Test.csv";
Elements(persons);
Adding.AddedPersons(persons, path);
Console.ReadLine();
}
并且我在列表中添加的元素在以下方法中被硬编码...
public static void Elements(List<Person> persons)
{
persons.Add(new Person() { FirstName = "Cosmin", LastName = "Ionut" });
persons.Add(new Person() { FirstName = "Bianca", LastName = "Elena" });
}
所以我想要的是能够将这些人添加为控制台输入,而不是在方法中硬编码
【问题讨论】:
-
基本上,您可以将 CSV 中的名字和姓氏读入变量,然后将这些变量替换为“Cosmin”和“Ionut”,而不是
new Person() { FirstName = "Cosmin", LastName = "Ionut" });。 -
@RobertHarvey,我不这么认为。我知道他想用对
Console.ReadLine()的一些调用来替换Elements中的代码。因此,Cosmin,您需要定义用户输入该信息的方式。两个单词用空格隔开?或者名字和姓氏分开?输入如何完成?经典的“空空如也”? -
@Andrew 我试图在'while'循环中分别阅读它们,类似于 Person.FirstName=Console.Readline();但是当我想到一个可以停止而不是永远继续的想法时,我被卡住了
-
通常你会以一个空条目结束,否则你可以在每次输入 Y/N 问题时询问是否输入新条目。