Как я могу проверить, существует ли имя пользователя в файле - PullRequest
0 голосов
/ 26 декабря 2018

В классе я ввожу данные для создания учетной записи.Теперь все данные, которые вводит пользователь, сохраняются в файл.Теперь для имени пользователя, я хочу проверить, существует ли файл с именем пользователя.Как я могу это сделать?

      public void CreateAccount()
      {

        Console.WriteLine("-=-=-=-=-=-=-=-=-=-=-=-=-=-");
        Console.WriteLine("Enter a Username: ");

        Client usernameField = new Client("Username")
        {
            UsernameField = Console.ReadLine()
        };


        string filePath = "C:\\createaccount.txt"

        Client.SerializeData(accountData, filePath);

    public static void SerializeData(List<Client> userToSerialize, string 
    filePath)
    {
        FileReadWrite<Client>.SerializeData(userToSerialize, filePath);
    }

    public static List<Client> DeserializeData<Client>(string filePath)
    {
        return FileReadWrite<Client>.DeserializeData<Client>(filePath);
    }  

1 Ответ

0 голосов
/ 26 декабря 2018

Вам необходимо десериализовать существующие данные, хранящиеся в файле.

var listOfClients = Client.DeserilizeData(fileName);

Это даст вам список существующих пользователей.Затем вы можете использовать Linq, чтобы проверить, существует ли имя пользователя

var exists = listOfclients.Any(x=>x.UsernameField.Equals(newUserName));

Если имя пользователя не учитывает регистр, вам необходимо использовать

var exists = listOfclients.Any(x=>x.UsernameField.Equals(newUserName,StringComparison.OrdinalIgnoreCase));

Обновление на основе вашего кода.

Console.WriteLine("-=-=-=-=-=-=-=-=-=-=-=-=-=-");
Console.WriteLine("Enter a Username: ");

Client usernameField = new Client("Username")
{
    UsernameField = Console.ReadLine()
};
var listOfClients = Client.DeserilizeData(fileName);
var exists = listOfclients.Any(x=>x.UsernameField.Equals(usernameField.UsernameField ));
...