0
from e in employees
where e.MonthlySalary >= 4000M && e.MonthlySalary <= 6000M
select e;

e= element 在这种情况下,还是它说明了一些不同的东西?

4

4 回答 4

3

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);
于 2012-07-13T01:20:17.037 回答
2

假设你从某个地方复制了这个,e是任意的。如果employees是员工列表,则可能有人选择e代表单个员工。

作为旁注,您还可以将其重写为:

employees.Where(e => e.MonthlySalary >= 4000M && e.MonthlySalary <= 6000M)

...有时更容易阅读。

于 2012-07-13T01:20:13.043 回答
1
from e in employees ...

基本上是一样的

foreach(var e in employees) { ... }

这说明了其他人在说什么:这e只是集合中当前元素的变量名。

于 2012-07-13T01:33:25.517 回答
0

嗯,这e可以是你想要的任何东西。您可以调用它x, y, z等。它代表您列表中的对象。所以在你的例子e中指的是一个employee对象。所以你可以说e.MonthlySalarye.EmployeeName等等,它会在这些条件下匹配所有员工

于 2012-07-13T01:17:09.010 回答