更新:2007 年 11 月
错误消息
名称“name”不在“equals”右侧的范围中。请考虑交换“equals”两侧的表达式。
equals 关键字是一种在 join 子句中使用的特殊运算符,用于确定两个表达式是否相等。左侧源序列的范围变量位于 equals 左侧的范围中,而右侧源的范围变量仅位于 equals 左侧的范围中。可以通过试验 IntelliSense 验证这一点,如下面的代码示例所示。
更正此错误
- 交换两个范围变量的位置,如下面的示例中的注释行所示:
示例
下面的代码生成 CS1938:
// cs1938.cs
using System.Linq;
class Test
{
static void Main()
{
int[] sourceA = { 1, 2, 3, 4, 5 };
int[] sourceB = { 3, 4, 5, 6, 7 };
var query = from a in sourceA
join b in sourceB on b equals a // CS1938
// Try the following line instead.
// join b in sourceB on a equals b
select new { a, b };
}
}