C#控制台-从阵列中输入和删除

C#控制台-从阵列中输入和删除,c#,arrays,C#,Arrays,作为一个小任务的一部分,我被要求创建一个数组来存储从用户提供的输入中获取的名称和地址,以便以后能够从数组中删除名称和地址 任何帮助或链接,以帮助我了解如何实现这一点将高度赞赏,谢谢 编辑-数组要像地址簿一样设置,当打印到屏幕上时,它会这样显示:“Bloggs,Joe” 它必须是姓,然后是名。我知道如何获取和存储用户提供的信息,即他们的姓名和地址,但我一直在研究如何将这些信息添加到数组中。数组不必是无限的,因为我应该根据自己的意愿分配任意大小的数组 在程序开始时,它将成为其中的一部分,用户将获得一

作为一个小任务的一部分,我被要求创建一个数组来存储从用户提供的输入中获取的名称和地址,以便以后能够从数组中删除名称和地址

任何帮助或链接,以帮助我了解如何实现这一点将高度赞赏,谢谢

编辑-数组要像地址簿一样设置,当打印到屏幕上时,它会这样显示:“Bloggs,Joe” 它必须是姓,然后是名。我知道如何获取和存储用户提供的信息,即他们的姓名和地址,但我一直在研究如何将这些信息添加到数组中。数组不必是无限的,因为我应该根据自己的意愿分配任意大小的数组


在程序开始时,它将成为其中的一部分,用户将获得一个菜单,他们可以选择添加记录、删除记录或将书籍打印到屏幕上。所以我打算在合适的地方使用方法。

首先,这里使用的是数组

数组的大小总是固定的,而您希望能够添加元素,然后删除它们。假设您使用的是C#2或更高版本,您可能应该使用
列表

现在,下一件事是计算出
T
应该是什么。听起来您想存储人员的详细信息-因此您应该创建一个
Person
类(或者
Contact
)来封装姓名和地址。。。这样您就可以有一个
列表

下一个任务可能是找出如何请求用户输入,并将该输入转换为
Person
的实例


基本上,将任务分解成小块,然后就任何你觉得困难的特定小块自由提问。

首先,这里使用的是数组

数组的大小总是固定的,而您希望能够添加元素,然后删除它们。假设您使用的是C#2或更高版本,您可能应该使用
列表

现在,下一件事是计算出
T
应该是什么。听起来您想存储人员的详细信息-因此您应该创建一个
Person
类(或者
Contact
)来封装姓名和地址。。。这样您就可以有一个
列表

下一个任务可能是找出如何请求用户输入,并将该输入转换为
Person
的实例


基本上,把任务分解成小块,然后就你觉得困难的任何特定部分自由提问。

我似乎还记得我的CS课上同样的作业


教授希望我们使用链表。正如John Skeet在上文中指出的,.NET有
列表
,它基本上是一个链表(添加了能够像数组一样通过索引引用每个项目的功能)

我似乎还记得我的CS类中完全相同的赋值


教授希望我们使用链表。正如John Skeet在上文中指出的,.NET具有
列表
,它基本上是一个链表(具有能够像数组一样通过索引引用每个项目的附加功能)

您可以为保存部分使用序列化程序

查看BinaryFormatter类和XmlSerializer。 首选XmlSerializer,因为文件是可读的,考虑到应用程序的类型和用途,效率通常不那么重要

使用XmlSerializer非常简单:

var filename=“c:\..\addressbook.xml”;
if(File.Exists(filename))
删除(文件名);
使用(var sw=新StreamWriter(文件名))
{
var xs=新的XmlSerializer(typeof(List));
序列化(sw,myAddressBook);
}

您可以为保存部件使用序列化程序

查看BinaryFormatter类和XmlSerializer。 首选XmlSerializer,因为文件是可读的,考虑到应用程序的类型和用途,效率通常不那么重要

使用XmlSerializer非常简单:

var filename=“c:\..\addressbook.xml”;
if(File.Exists(filename))
删除(文件名);
使用(var sw=新StreamWriter(文件名))
{
var xs=新的XmlSerializer(typeof(List));
序列化(sw,myAddressBook);
}

您将通过控制台应用程序、winforms应用程序或web(.aspx)或其他什么程序执行此操作?它是否需要在应用程序退出后继续存在(想想保存游戏),或者它是否足以在程序生命周期内检索和存储数据?(如果这是一个学校项目,并且是学期末,那么应该期望持久性)使用microsoft visual c#2008。是的,将需要一个“保存游戏”,这样当应用程序再次打开时,用户可以继续从阵列中添加/删除(它将被视为通讯簿)。您将从控制台应用程序、winforms应用程序或web(.aspx)或什么来执行此操作?它是否需要在应用程序退出后继续存在(想想保存游戏),或者它是否足以在程序生命周期内检索和存储数据?(如果这是一个学校项目,并且是学期末,那么应该期望持久性)使用microsoft visual c#2008。是的,需要一个“保存游戏”,这样当应用程序再次打开时,用户可以继续从数组中添加/删除(它将被视为通讯簿)。我相信提问的人是学生,所以他们知道的唯一单词是数组(实际上,除了T的“数组”,什么是列表[好的,我意识到我在更一般的伪代码案例中所指的语义差异]@BenSmith~一旦你理解了Jon的建议,你应该将这个答案标记为已接受(使用答案左侧和上方下方的灰色->绿色复选标记)然后问一些新的问题,这些问题会让你感到舒服。我们不介意帮你走过去,正如你所看到的,你在5分钟内就有了评论和答案,所以我们至少也一样快
var filename = "c:\....\addressbook.xml";
if (File.Exists(filename))
   File.Delete(filename);
using (var sw = new StreamWriter(filename))
{
   var xs = new XmlSerializer(typeof(List<Person>));
   xs.Serialize(sw, myAddressBook);
}