C# 为什么我的代码没有迭代?

C# 为什么我的代码没有迭代?,c#,linq,delayed-execution,C#,Linq,Delayed Execution,为什么我的代码没有按预期工作?其他人(部门名称、员工名称和状态描述)正在工作(如下所示) 我要找的是: No. Dep Name Status 1 Finance John Present 2 Education Mary Present 3 Recreational Tom Absent 更新: 看起来我的“查询”(在查询中的foreach

为什么我的代码没有按预期工作?其他人(部门名称、员工名称和状态描述)正在工作(如下所示)

我要找的是:

No.      Dep             Name      Status
1        Finance         John      Present
2        Education       Mary      Present
3        Recreational    Tom       Absent
更新:
看起来我的“查询”(在查询中的foreach var q中)的计数值为1。我想这就是我的问题所在。有人知道我如何解决这个问题吗?

看起来您正在发布多个查询的结果

原始查询查找一个特定的名称(
emp.employeeName==name
),该名称可能会生成一个结果。您发布的结果中有多个名称,这意味着您多次运行此查询(可能在封闭循环中?)。每个查询都将countRow初始化为1,因此每次都会得到相同的数字。
如果您有多个同名员工,您将看到除1以外的数字。如注释所示,尝试找到封闭循环并将
countRow=1
初始值设定项移到那里

“不迭代”?什么事没有发生?您的查询是否返回结果?您发布的代码是工作代码还是损坏的代码?您确定此查询未执行3次吗?看起来您是按员工姓名筛选的,所以根据给定的输出,必须单独执行。尝试将代码中的rowCount移得更高。我已经测试了您的
控制台。WriteLine
在一个for循环中,使用一个随着
countRow++
增加的计数器,正如您所做的那样,它可以工作。正如Pawel所说,您发布的代码不是正在运行的代码,或者正在使用不同的参数运行三次。查询包含
,其中emp.employeeName==name
,因此只返回单个名称的结果。然而,输出包含约翰、玛丽和汤姆。所以,重申一下其他人所说的话,你的循环几乎肯定是可以的。逐步使用调试器找出发生了什么。这可能是代码的问题,而不是问题所在。
No.      Dep             Name      Status
1        Finance         John      Present
1        Education       Mary      Present
1        Recreational    Tom       Absent
No.      Dep             Name      Status
1        Finance         John      Present
2        Education       Mary      Present
3        Recreational    Tom       Absent