bool不工作的代码应为C#

bool不工作的代码应为C#,c#,boolean,C#,Boolean,我一直在起草一个登录中心(是的,我知道,我会将密码和用户名的存储转移到数据库或稍后将其散列),我的bool代码遇到问题,无法查看用户名是否存在。检查登录用户的bool代码始终为false。 编辑:小代码段: bool userContain = File.ReadAllLines("C:\\Users\\Public\\Passwords.txt").Contains(loginUser); Console.WriteLine(userContain);

我一直在起草一个登录中心(是的,我知道,我会将密码和用户名的存储转移到数据库或稍后将其散列),我的bool代码遇到问题,无法查看用户名是否存在。检查登录用户的bool代码始终为false。 编辑:小代码段:

bool userContain = File.ReadAllLines("C:\\Users\\Public\\Passwords.txt").Contains(loginUser);
                Console.WriteLine(userContain);
                if (loginUser == "")
                { Console.WriteLine("Error.... Username is empty.. stop trying to glitch the system ;("); }
                else
                {
                    if (userContain == true)
                    {
                        if (lineCount == countLine) { Console.WriteLine("Logged In!"); loginAttempt = 1; } else { Console.WriteLine("Error:Password or User incorrect!"); }
                    }

                    else { Console.WriteLine("Error, Username does not exist"); }
                }

编辑:愚蠢的打字错误。。。。谢谢你指出这一点。我现在在精神上对自己进行了多次抨击

您的版本检查是否有一行与用户名相等,而这可能只是该行的一部分

bool userContain = File.ReadAllLines("C:\\Users\\Public\\Passwords.txt").Any(s=>IsInLine(s,userLogin));
实现
IsInLine
,使其与您的数据表示相匹配-例如,如果密码文件中的每一行的格式为“mechron,123”,则
IsInLine
可以使用string.Split(“,”)并与第一个标记进行比较


而且,也许这是一个案例问题。如果用户名不区分大小写,那么最好在比较之前规范化大小写(例如使用
ToLower()
)?你有什么问题?我不清楚你的问题是什么。哦,对不起,如果我没有说清楚,那不是一个错误。哎呀,现在要编辑问题了。检查登录用户的bool代码总是错误的。代码太多了!找到一个显示问题的较小示例。顺便说一句,而不是
if(userContain==true)
-只需编写
if(userContain)
@ops Ok。没有更改任何内容:P无论如何,感谢您提醒我缩短它。不起作用:/the.Any(s=>s.Contains(loginUser))是什么;do?它在每一行上执行谓词并在其中一行返回true时返回true。在我们的例子中,它检查是否有一行包含用户名。因此,在使用代码时,如果文件中有用户opd,那么用户o、op和pd也是如此。可能是他的问题,但这不是解决办法。韦斯顿-你说得对。你能给我们一个来自密码文件的示例行吗?