from e in employees
where e.MonthlySalary >= 4000M && e.MonthlySalary <= 6000M
select e;
e= element 在这种情况下,还是它说明了一些不同的东西?
e
只是您设置的别名,指的是查询的结果集。
如果你愿意,你可以命名它chocolateSprinkles
,关键是它可以让你的生活更轻松。:)
这将产生与原始代码完全相同的结果:
// The raddest of the rad dudes.
from radDudes in employees
where radDudes.MonthlySalary >= 4000M && radDudes.MonthlySalary <= 6000M
select radDudes;
C# 开发人员通常在这些 Linq 查询中使用单字母变量,因为它更易于键入和一目了然。由于该变量通常不会在 Linq 查询之外的任何地方使用,因此有时人们只使用一个字母。
我建议使用描述性名称。在您的情况下,e
您可以使用employee
它,因为它更具可读性。
// Which is more readble?
where e.MonthlySalary >= 4000M && e.MonthlySalary <= 6000M
// or:
where employee.MonthlySalary >= 4000M && employee.MonthlySalary <= 6000M
附带说明一下,您还可以使用此 Linq 语法。这完全是个人喜好:
var resultEmployees = employees.Where(e => e.MonthylSalary >= 4000M && e.MonthlySalary <= 6000M);
假设你从某个地方复制了这个,e
是任意的。如果employees
是员工列表,则可能有人选择e
代表单个员工。
作为旁注,您还可以将其重写为:
employees.Where(e => e.MonthlySalary >= 4000M && e.MonthlySalary <= 6000M)
...有时更容易阅读。
from e in employees ...
基本上是一样的
foreach(var e in employees) { ... }
这说明了其他人在说什么:这e
只是集合中当前元素的变量名。
嗯,这e
可以是你想要的任何东西。您可以调用它x, y, z
等。它代表您列表中的对象。所以在你的例子e
中指的是一个employee
对象。所以你可以说e.MonthlySalary
或e.EmployeeName
等等,它会在这些条件下匹配所有员工