共用方式為


編譯器錯誤 CS1938

更新: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 };
    }
}

請參閱

參考

join 子句 (C# 參考)