Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查文件中是否已存在用户名_C#_File_Filter_Filtering - Fatal编程技术网

C# 如何检查文件中是否已存在用户名

C# 如何检查文件中是否已存在用户名,c#,file,filter,filtering,C#,File,Filter,Filtering,在一个类中,我输入数据来创建一个帐户。现在,用户输入的每个数据都保存在一个文件中。现在,对于用户名,我想检查文件中是否已经存在该用户名。我该怎么做 public void CreateAccount() { Console.WriteLine("-=-=-=-=-=-=-=-=-=-=-=-=-=-"); Console.WriteLine("Enter a Username: "); Client usernameFi

在一个类中,我输入数据来创建一个帐户。现在,用户输入的每个数据都保存在一个文件中。现在,对于用户名,我想检查文件中是否已经存在该用户名。我该怎么做

      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);
    }  
public void CreateAccount()
{
Console.WriteLine(“-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-”;
Console.WriteLine(“输入用户名:”);
客户端用户名字段=新客户端(“用户名”)
{
UsernameField=Console.ReadLine()
};
string filePath=“C:\\createaccount.txt”
序列化数据(accountData、filePath);
公共静态void序列化数据(列表userToSerialize,字符串
文件路径)
{
序列化数据(userToSerialize,filePath);
}
公共静态列表反序列化数据(字符串文件路径)
{
返回FileReadWrite.DeserializeData(文件路径);
}  

您需要对文件中存储的现有数据进行反序列化

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 ));

您需要反序列化文件中存储的现有数据

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 ));

1.
反序列化数据
数据,2.检查
列表
是否包含输入的
用户名字段
反序列化数据
数据,2.检查
列表
是否包含输入的
用户名字段
。新用户名将是用户给定的值,varnewUsername=Console.ReadLine();我不知道为什么用户输入的值总是空的:(根据您的代码更新了答案,您现在可以检查'var myRetrievedClients=Client.DeserializeData(filePath);bool exists=myRetrievedClients.Any(x=>x.UsernameField.Equals(UsernameField))'实现它的newUserName?newUserName将是用户给定的值,var newUserName=Console.ReadLine();我不知道为什么用户输入的值总是空的:(根据您的代码更新了答案,您现在可以检查'var myRetrievedClients=Client.DeserializeData(filePath)吗;bool exists=myRetrievedClients.Any(x=>x.UsernameField.Equals(UsernameField));'