从二维数组中删除条目

时间:2011-12-15 13:38:22

标签: c# arrays multidimensional-array

我正在完成大学任务,而且我的阵列遇到了一些问题。

我正在构建一个基于控制台的地址簿应用程序,我需要使用2D数组,它可以选择添加,删除或打印数组的内容......

我正在删除当前条目,将值替换为" XXX" -as是简要说明。然后我隐藏了" XXX"打印到屏幕时的值。

但是,一旦我删除了'一个条目,当涉及到打印整个数组时,我试图删除的条目之后列出的任何内容都没有显示,除非添加了新条目。

有人能说清楚为什么会这样吗?

2 个答案:

答案 0 :(得分:0)

在您的代码中,一旦if语句捕获到真实条件,您将删除整个列,例如如果address[1, 1] == DeleteName那么for循环之后的数组将如下所示:

A00    XXX    A02 ...
A10    XXX    A13 ...
A20    XXX    A23 ...
A30    XXX    A33 ...
...    ...

因此,如果您只需删除一个条目,则需要两个循环:

for (int i = 0; i < 5; i++)
{
    for(int j =0;j < 5; j++)
    {
       if (Address[i, j] == DeleteName)
       {
           Address[i, j] = "XXX";
           Console.WriteLine("Contact Deleted");
       }
    }
} 

答案 1 :(得分:0)

另外,在你的情况3中,看起来你错过了你的else语句之后的{}

else
{
    FName = Address[i, 0]; 
    LName = Address[i, 1]; 
    Number = Address[i, 2]; 
    Road = Address[i, 3]; 
    Town = Address[i, 4]; 
    Console.WriteLine(LName +", " + FName + " - "+ Number + ", " + Road+", " + Town); 
}
相关问题