相关疑难解决方法(0)

linq的let关键字比关键字更好吗?

我正在刷新LINQ,并试图理解let和使用into关键字之间的区别.到目前为止,就我的理解而言,let关键字似乎比关键字更好into.

into关键字实质上允许在投影后继续查询.(只是想明确说明我不是指组连接的那个.)

给定一系列名称,它允许人们执行以下操作:

var intoQuery =
  from n in names
  select Regex.Replace(n, "[aeiou]", "")
  into noVowel
  where noVowel.Length > 2
  select noVowel;
Run Code Online (Sandbox Code Playgroud)

它需要选择的结果,并将其放置到noVowel变量,然后允许一个引入额外的where,orderbyselect条款.一旦noVowel变量被创建,该n变量不再可用.

let关键字,而另一方面,使用温度匿名类型,让你在同一时间重复使用一个以上的变量.

您可以执行以下操作:

var letQuery =
  from n in names
  let noVowel = Regex.Replace(n, "[aeiou]", "")
  where noVowel.Length > 2
  select noVowel;
Run Code Online (Sandbox Code Playgroud)

这两个noVoweln变量都可以使用(即使我在这种情况下没有使用它).

虽然我可以看到差异,但我不太明白为什么人们会想要在into关键字上使用let关键字,除非明确要确保以前的变量不能在查询的后半部分使用.

那么,两个关键词存在的原因是否存在?

c# linq

84
推荐指数
2
解决办法
3万
查看次数

标签 统计

c# ×1

linq ×1