C# for循环不工作
下面的代码只是显示ID不存在作为结果。有什么问题吗C# for循环不工作,c#,C#,下面的代码只是显示ID不存在作为结果。有什么问题吗 int sc = Convert.ToInt32(txtbx_id.Text); int n = Convert.ToInt32(txtbx_noofrecomm.Text); bool shart = false; for (int yu = 0; yu <= 92161; yu++) { int wer = d[yu]; if (wer == sc) { shart = true;
int sc = Convert.ToInt32(txtbx_id.Text);
int n = Convert.ToInt32(txtbx_noofrecomm.Text);
bool shart = false;
for (int yu = 0; yu <= 92161; yu++)
{
int wer = d[yu];
if (wer == sc)
{
shart = true;
userseq = yu;
var results = new List<float>(1143600);
for (int z = 0; z < 1143600; z++)
{
results.Add(dotproduct(userseq, z));
}
var sb1 = new StringBuilder();
foreach (var resultwithindex in results.Select((r, index) => new { result = r, Index = index }).OrderByDescending(r => r.result).Take(n))
{
sb1.AppendFormat(CultureInfo.InvariantCulture, "{0}: {1}", c[resultwithindex.Index], resultwithindex.result);
sb1.AppendLine();
}
MessageBox.Show(sb1.ToString());
}
}
if (shart == false)
{
MessageBox.Show("The ID Does Not Exist");
}
d[]中的任何内容都不等于sc.尝试删除第二条If语句,然后将第一条If语句转换为If-Else。 因此,您可以在将来有效地测试数据。然后可以将shart设置为false,然后显示messagebox
if (wer == sc)
{
shart = true;
userseq = yu;
var results = new List<float>(1143600);
for (int z = 0; z < 1143600; z++)
{
results.Add(dotproduct(userseq, z));
}
var sb1 = new StringBuilder();
foreach (var resultwithindex in results.Select((r, index) => new { result = r, Index = index }).OrderByDescending(r => r.result).Take(n))
{
sb1.AppendFormat(CultureInfo.InvariantCulture, "{0}: {1}", c[resultwithindex.Index], resultwithindex.result);
sb1.AppendLine();
}
MessageBox.Show(sb1.ToString());
}else{
shart = false;
MessageBox.Show("The ID Does Not Exist");
}
试一试。当你没有向我们展示d[]包含的内容或它可能如何加载时,我们如何判断出哪里出了问题no@Khanzor。当我删除消息时,它工作正常。问题是消息真的有问题吗?那么,当您删除消息时,它不会显示消息?有趣的是,不,我的意思是结果是正确的,d[]不是空的@selman22,你的谓词失败了。因为你说数据是正确的,我们只能看到你给了我们什么。我假设,因为您说过,当您删除底部if语句,即您的数据对于d[]=sc是正确的时,一切都会工作。