为什么 join 不适用于存储 IEnumerable 的 let 子句

Ath*_*ras 5 c# linq

以下代码在 Linq 中工作正常,当我使用 where 子句加入表时

var result =
    from dist in distributors
    let mainDistributorStates = new List<string> {"TX", "OR"}
    from mdist in mainDistributorStates 
    where dist.State == mdist
    select dist; 
Run Code Online (Sandbox Code Playgroud)

但以下没有,显示编译器错误

当前上下文中不存在 mainDistributorStates。

var result =
    from dist in distributors
    let mainDistributorStates = new List<string> {"TX", "OR"}
    join mdist in mainDistributorStates 
     on dist.State equals mdist
    select dist; 
Run Code Online (Sandbox Code Playgroud)

基于文档

在查询表达式中,有时存储子表达式的结果以便在后续子句中使用它是有用的。

既然 let 子句存储了一个 IEnumerable,为什么不能像 linq 中的任何其他数据源一样使用它?