c# arraylist用户输入
本文关键字:输入 用户 arraylist | 更新日期: 2023-09-27 18:10:22
我在c#中有一个ArrayList的问题,我知道如何添加我自己的输入并运行程序,以便数组充满信息。但是我想根据用户的输入来填充一个数组列表。
这就是我需要的:用户可以输入他/她的名字,出生日期和年龄。所有这些信息都存储在一个元素中。
我的目标是能够制作一个应用程序,允许用户为几个人输入这种数据,然后打印输出。
下面是我的代码:我有一个类Person来处理用户信息:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ArrayList_Siomple_Sorted_10
{
class Person
{
private string personName;
private DateTime birthDate;
private double personAge;
public Person(string name, DateTime bDate, double age)
{
personName = name;
birthDate = bDate;
personAge = age;
}
public string Name
{
get { return personName; }
set { personName = value; }
}
public DateTime Birthdate
{
get { return birthDate; }
set { birthDate = value; }
}
public double Grade
{
get { return personAge; }
set { personAge = value; }
}
public void Show()
{
Console.WriteLine(personName + " " + birthDate.ToString("d.M.yyyy") + " " + personAge);
}
}
}
这是Main类的Main方法:
using System;
using System.Collections;
using System.Text;
namespace ArrayList_Siomple_Sorted_10
{
class Program
{
static void Main(string[] args)
{
DateTime birthDateP3 = new DateTime(1980, 2, 25);
Person p3 = new Person("Ann Person", birthDateP3, 8);
DateTime birthDateP2 = new DateTime(1980, 2, 25);
Person p2 = new Person("Ann Person", birthDateP2, 8);
DateTime birthDateP1 = new DateTime(1980, 2, 25);
Person p1 = new Person("Ann Person", birthDateP1, 8);
ArrayList ar = new ArrayList();
ar.Add(p1);
ar.Add(p2);
ar.Add(p3);
Console.WriteLine("Print the original Array");
foreach (Person pr in ar)
pr.Show();
}
}
}
我想要实现的事情是可能的吗?谢谢你的回答。v .
是的,这是可能的。你在这里面临的具体问题是什么?顺便说一句,您应该使用通用集合List<Person>
而不是ArrayList
。
在控制台程序中,您将使用Console.ReadLine
获取用户输入,验证/解析它并填充person实例并添加到您的列表中。例如,
...
var ar = new List<Person>();
var name = Console.ReadLine();
// validate name (check if its not blank string etc)
...
var dob = Console.ReadLine();
// validate date of birth (date/time format, past date etc)
...
DateTime dateOfBirth = DateTime.Parse(dob);
// compute age
var age = (DateTime.Now - dateOfBirth).Years;
var p = new Person(name, dateOfBirth, age);
ar.Add(p);
...
首先,您应该考虑使用List<T>
而不是ArrayList。
第二,当然,这是可能的。你可以用下面的方法做。
static void Main(string[] args)
{
DateTime birthDateP3 = new DateTime(1980, 2, 25);
Person p3 = new Person("Ann Person", birthDateP3, 8);
DateTime birthDateP2 = new DateTime(1980, 2, 25);
Person p2 = new Person("Ann Person", birthDateP2, 8);
DateTime birthDateP1 = new DateTime(1980, 2, 25);
Person p1 = new Person("Ann Person", birthDateP1, 8);
ArrayList ar = new ArrayList();
string name = Console.ReadLine();
ar.Add(name);
Console.WriteLine("Print the original Array");
foreach (Person pr in ar)
pr.Show();
}
你应该使用Generic list而不是ArrayList
,像这样:
List<string> mylist = new List<string>();
string str = Console.ReadLine();
mylist.Add(str);
当然,你可以使用Console.ReadLine()方法读取输入数据,或者如果你想要一个更复杂的接口,你可以使用Windows Form API。