該錯誤發生在 SkipWhile 方法的第二個“line”關鍵字中。顯示以下日志
CS1929“char”不包含“Contains”的定義,最佳擴展方法多載“Queryable.Contains(IQueryable, string)”需要“IQueryable”型別的接收器
public static void loginEmployee(string user, string password)
{
string filename = "servidores_cadastrados_db_backup.txt";
string path = AppConfig.appconfig.defaultPath;
path = Path.Combine(path, filename);
if (File.ReadAllText(path).Contains(user))
{
employee.Registration = File.ReadAllText(path).SkipWhile(line => !line.Contains(user))
.TakeWhile(line => !line.Contains(user));
}
else
{
MessageBox.Show("Invalid User or Password..", "Invalid Login", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
uj5u.com熱心網友回復:
您正在使用File.ReadAllText然后使用SkipWhile將回傳文本的每個字符的那個。您應該使用的是File.ReadLines并迭代這些行。
employee.Registration = File.ReadLines(path).SkipWhile(line => !line.Contains(user))
.TakeWhile(line => !line.Contains(user));
另外,我認為您.TakeWhile(line => !line.Contains(user)錯了,難道不應該嘗試匹配user而不是不匹配嗎?
employee.Registration = File.ReadLines(path).SkipWhile(line => !line.Contains(user))
.TakeWhile(line => line.Contains(user));
uj5u.com熱心網友回復:
我想跳過 while 不適用于字符。也許嘗試將每個作為字串處理,看看是否有效?雖然我不認為這是最佳實踐,但我真的不知道你想要實作什么
File.ReadAllText(path).SkipWhile(line => !line.ToString().Contains(user)).TakeWhile(line => !line.ToString().Contains(user));
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/364129.html
標籤:C#
上一篇:C#System.IO.DirectoryNotFoundException:找不到路徑的一部分
下一篇:JSON序列化與C#中的資料庫
