удаление и замена строк в C# - PullRequest
1 голос
/ 25 января 2020

Я создал строку, которая позволяет пользователю написать 5 имен. Эти имена хранят, а затем распечатывают. Затем пользователь получает вопрос об изменении одного из этих 5 имен, а после изменения выводятся новые имена. Я хочу спросить пользователя, хочет ли он / она заменить / изменить какие-либо имена, и если да, то сколько?

class Program
    {
        static void Main(string[] args)

        {
            string[] namn = new string[5];
            Console.Write("Write your 5 names:\n "); 

            for (int i = 0; i < 5; i++)
            {
                string ad = Console.ReadLine();
                namn[i] = ad;
                Console.WriteLine("Ur names are: " + namn[i]);

            }
            Console.WriteLine("Which name do u like to change (alt 1 to 5: ");  

            int tal = int.Parse(Console.ReadLine());
            switch (tal)
            {
                case 1:
                    Console.WriteLine(" Write a new name: ");
                    Console.ReadLine();

                    break;
            }
            namn[tal - 1] = Console.ReadLine();
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("Ur new names are: " + namn[i]);
            }

        }


        } }

1 Ответ

0 голосов
/ 25 января 2020

Посмотрите, как это работает для вас.

  1. Покройте все это в while l oop, чтобы оно продолжало идти по вопросу, который вы хотите изменить, вставить или удалить до Вы не хотите больше.
  2. Используйте список, чтобы расширить или уменьшить его (вместо жесткого кодирования 5). Вы также можете использовать условие, чтобы оно не go превышало 5 в списке.
    List<string> namn = new List<string>();
    Console.Write("Write your 5 names:\n");
    while (namn.Count != 5)
    {
        Console.Write($"Enter Name [{namn.Count + 1}/5]: ");
        namn.Add(Console.ReadLine());
    }

    while (true)
    {
        int index = 1;
        Console.Clear();
        Console.WriteLine($"Your names are: ");
        namn.ForEach(x => Console.WriteLine($"{index++} - {x}"));

        Console.WriteLine("\n\n\nWhat would you like to do: ");
        Console.WriteLine("1. Change Name");
        Console.WriteLine("2. Delete Name");
        Console.WriteLine("3. Insert Name");
        Console.WriteLine("anyKey. Exit.\n");

        Console.Write("Selection: ");
        int tal = 0;
        try { tal = int.Parse(Console.ReadLine()); } catch { continue; }
        switch (tal)
        {
            case 1:
                if (namn.Count == 0)
                {
                    Console.WriteLine("Nothing to change, insert more then change... press enter to continue");
                    Console.ReadLine();
                    break;
                }

                Console.Write($"Which name do you want to change [index from 1 to {namn.Count}]: ");
                int updateIndex = int.Parse(Console.ReadLine()) - 1;
                if (updateIndex < 0 && updateIndex > namn.Count)
                    Console.WriteLine("Nope, must be between the indecies.");
                else
                    Console.Write($"Enter New Name for [{namn[updateIndex]}]: ");
                namn[updateIndex] = Console.ReadLine();
                break;

            case 2:
                if (namn.Count == 0)
                {
                    Console.WriteLine("Nothing to delete... press enter to continue");
                    Console.ReadLine();
                    break;
                }

                Console.Write($"Which name do you want to delete [index from 1 to {namn.Count}]: ");
                int deleteIndex = int.Parse(Console.ReadLine()) - 1;
                if (deleteIndex > namn.Count() && deleteIndex < 0)
                    Console.WriteLine("Sorry, must be one of these names.");
                else
                    namn.RemoveAt(deleteIndex);
                break;

            case 3:
                Console.Write("Enter Name to insert: ");
                namn.Add(Console.ReadLine());
                break;

            case 4:
                return;
        }
    }
...