как заменить существующего пользователя и пароль в списках? - PullRequest
0 голосов
/ 05 мая 2019

У меня сейчас проблема с редактированием существующего имени пользователя и пароля, которые я сохранил в списке.

Объявления:

public static Administrator Cadmin = new Administrator("", "", "", "");
public static Staff Cstaff = new Staff("", "", "", "");
public static Administrator Ladmin = new Administrator("", "", "", "");
public static Staff Lstaff = new Staff("", "", "", "");
public static string NCName;
public static string NCPassword;
List<User> UserList = new List<User>();

Выполнение кода:

Console.WriteLine("Which user would you like to edit?");
string ruser = Console.ReadLine();

bool Ustop = false;
while (!Ustop)
{
    foreach (User u in UserList)
    {
        if (ruser == Cadmin.CName)
        {
            Console.WriteLine("Please key in the existing password of the selected username");
            string epass = Console.ReadLine();

            if (epass == Cadmin.CPassword)
            {
                Console.WriteLine("Create new Administrator Username:");
                NCName = Console.ReadLine();

                Console.WriteLine("\nCreate new Administrator Password: ");
                NCPassword = Console.ReadLine();


                ruser.Replace(ruser, NCName);
                epass.Replace(epass, NCPassword);
            }
            else
            {
                Console.WriteLine("Password that you key in is invalid!");
            }
        }
        else
        {
            Console.WriteLine("Username that you key in did not exist!");
            Console.WriteLine("Please key in a valid username");
        }
    }
}

1 Ответ

0 голосов
/ 05 мая 2019

Я понял, что у вас есть проблемы с хранением данных в заполненном в настоящее время списке, поэтому вот одно из решений, используйте вместо этого, если foreach, а затем вы можете редактировать определенный член списка, используя его индекс (я считал, что CAdmin унаследованный от класса User и User имеет свойства для CName и CPassword):

bool Ustop = false;
while (!Ustop)
{
    for (var i = 0; i< UserList.Count ; i++ )
    {
        User u = UserList[i];
        if (ruser == u.CName)
        {
            Console.WriteLine("Please key in the existing password of the selected username");
            string epass = Console.ReadLine();

            if (epass == u.CPassword)
            {
                Console.WriteLine("Create new Administrator Username:");
                NCName = Console.ReadLine();

                Console.WriteLine("\nCreate new Administrator Password: ");
                NCPassword = Console.ReadLine();


                u.CName = NCName;
                u.CPassword = NCPassword;
            }
            else
            {
                Console.WriteLine("Password that you key in is invalid!");
            }
        }
        else
        {
            Console.WriteLine("Username that you key in did not exist!");
            Console.WriteLine("Please key in a valid username");
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...