c# - 使用数组在 C# 中制作地址簿

标签 c# arrays multidimensional-array console-application

我是新来的,但基本上我需要一些帮助。 我有一份大学作业,但遇到了一些麻烦。

我正在尝试在 C# 中制作地址簿作为控制台应用程序,并且我已经构建了我的数组和我的 case 语句等,但我已经到了不知道如何编辑/添加数据的地步

数组中填充了“XXXXX”,我应该能够更改这些以添加名字、姓氏、门牌号和道路名称、州和邮政编码,其中第 1 行是名字,第 2 行是姓氏等。我在案例 1 中编写的代码会这样做还是我做错了?

此外,案例 3 应该将书打印到屏幕上,但它出现了一条错误消息,指出当我在数组中声明它们时它无法识别 s1、s2、s3、s4、s5。这是因为数组与程序的其余部分是分开的吗?

这是我到目前为止所得到的,它很可能是完全错误的,但我们将不胜感激任何帮助。

非常感谢。

using System;

public static void Main()
{
    string s1, s2, s3, s4, s5;
    string select;
    string input;
    char charselect;
    char answer;

    string[,] a = new string[10, 5]
        {
            {"XXXXX", "XXXXX", "XXXXX", "XXXXX", "XXXXX"},
            {"XXXXX", "XXXXX", "XXXXX", "XXXXX", "XXXXX"},
            {"XXXXX", "XXXXX", "XXXXX", "XXXXX", "XXXXX"},
            {"XXXXX", "XXXXX", "XXXXX", "XXXXX", "XXXXX"},
            {"XXXXX", "XXXXX", "XXXXX", "XXXXX", "XXXXX"},
            {"XXXXX", "XXXXX", "XXXXX", "XXXXX", "XXXXX"},
            {"XXXXX", "XXXXX", "XXXXX", "XXXXX", "XXXXX"},
            {"XXXXX", "XXXXX", "XXXXX", "XXXXX", "XXXXX"},
            {"XXXXX", "XXXXX", "XXXXX", "XXXXX", "XXXXX"},
            {"XXXXX", "XXXXX", "XXXXX", "XXXXX", "XXXXX"}
         };

    for (int i = 0; i < a.Length / 5; i++)
    {
        s1 = a[i, 0];
        s2 = a[i, 1];
        s3 = a[i, 2];
        s4 = a[i, 3];
        s5 = a[i, 4];

    }
    Console.WriteLine("Do You Want to Open The Address Book?");
    Console.WriteLine("Type Y or N");
    input = Console.ReadLine();
    answer = Convert.ToChar(input);

    while (answer == 'Y')
    {
        Console.WriteLine("1. Add Entry");
        Console.WriteLine("2. Delete Entry");
        Console.WriteLine("3. Print Book to Screen");
        select = Console.ReadLine();
        {
            charselect = Convert.ToChar(select);
            char selection = (charselect);
            switch (selection)
            {
                case '1':
                    string firstname;
                    {
                        Console.WriteLine("Please enter the first name of your entry");
                        firstname = Console.ReadLine();


                        for (int i = 0; i < a.Length / 10; i++)
                        {
                            if (a[i, 0] == "XXXXX")
                            {
                                a[i, 0] = "firstname";
                            }
                        }
                        Console.ReadLine();
                        break;
                    }
                case '2':
                    {
                        Console.WriteLine("");
                        Console.ReadLine();
                        break;
                    }
                case '3':
                    {
                        Console.WriteLine("{0}, {1}, {2}, {3}, {4}", s1, s2, s3, s4, s5);
                        Console.ReadLine();
                        break;
                    }
                default:
                    {
                        Console.WriteLine("Incorrect selection, please try again");
                        Console.ReadLine();
                        break;
                    }
            }
        }
    }
}

最佳答案

通常您会创建一个包含地址字段的类:

public class Address
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Street { get; set; }
    public string City { get; set; }
    public string Zip { get; set; }
}

然后处理此地址类型的数组(或列表)。

var addresses = new Address[10];
addresses[0] = new Address { FirstName = "John", LastName = "Doe", ... };
Console.WriteLine("First name = {0}", addresses[0].FirstName;

用于此目的的二维数组对我来说似乎很奇怪。你真的在大学里学这些东西吗?

关于c# - 使用数组在 C# 中制作地址簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8477931/

相关文章:

algorithm - 如何在高度图中找到体积最大的长方体? (复杂度低)

c++ - 在 C++ 中使用 union 时是否可以跳过字节?

c# - 如何读取包含特殊字符的 ANSI 编码文件

c# - pictureBox 图像处理异常

c# - String.Format 函数不起作用

c# - 如何将自定义 XAML 属性添加到继承 UserControl 的类?

ios - 设置是否没有观察模型属性的变化 - Swift

PHP 创建文章列表的方法

c++ - 如何在 C/C++ 中获取多维数组的列?

java - 如何修复 ArrayList 的输出?