c# - 如何检查文件中是否已存在用户名
问题描述
在课堂上,我正在输入数据以创建一个帐户。现在,用户输入的每个数据都保存在一个文件中。现在对于用户名,我想检查用户名是否已经存在于文件中。我怎样才能做到这一点?
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);
}
解决方案
您需要反序列化存储在文件中的现有数据。
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 ));
推荐阅读
- python - 使用矩阵来通知像素应该在哪里打开或关闭(Numpy)
- python - 如何使用 pymongo 插入另一个嵌套文档?
- delphi - DSPack 能够移动到视频的中间
- python - 从单个输入语句分配多个值而不考虑空格
- active-directory - 我可以在 Azure AD 同步时触发事件吗?
- python - 使用 tbcontrol 和 python 将框图中的变量相乘
- ios - 更改observedObject时如何刷新另一个单元格
- excel - VBA过滤器列存储另一列的唯一值
- wix3.11 - 使用自定义操作编译基于 Wix 工具集的安装项目时出错
- microsoft-teams - 有没有办法以编程方式访问 Teams 群聊视图中的“不在办公室”状态区域?