以下代码在 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 中的任何其他数据源一样使用它?