其他声明在foreach循环中无法正常工作?这是我的代码.如果我的代码解释出错了会很好.
protected void getdata_Click(object sender, EventArgs e)
{
using (var db2 = new cftzClassDataContext())
{
var username = (from p in db2.cftzAccounts
where p.username.Equals(getdata2.Text)
select p);
foreach (var p in username)
{
if (getdata2.Text == p.username)
{
displayMSG.Text = "Is this correct ";
displayData.Text = p.username;
displayQuestionMark.Text = "?";
}
else
{
displayMSG.Text = "No User Found.";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
该if声明完全是多余的,因为您已经将列表过滤为仅包含用户名等于的帐户getData2.Text.因此,您的if测试将始终评估为true.
您可以将其重写为此,效果相同
using (var db2 = new cftzClassDataContext())
{
var username = (from p in db2.cftzAccounts.Take(100)
where p.username.Equals(getdata2.Text)
select p);
foreach (var p in username)
{
displayMSG.Text = "Is this correct ";
displayData.Text = p.username;
displayQuestionMark.Text = "?";
}
}
Run Code Online (Sandbox Code Playgroud)
但是,正如Hans指出的那样,你的循环也是不必要的,因为所有的用户名都是一样的.您的代码可以像下面这样简单:
using (var db2 = new cftzClassDataContext())
{
var user = db2.cftzAccounts.
FirstOrDefault(account => account.username.Equals(getdata2.Text));
if (user != null)
{
displayMSG.Text = "Is this correct ";
displayData.Text = user.username;
displayQuestionMark.Text = "?";
}
else
{
displayMSG.Text = "No User Found.";
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
452 次 |
| 最近记录: |