执行 linq 表达式

本文关键字:表达式 linq 执行 | 更新日期: 2023-09-27 17:57:08

我写了一个这样的查询

            var tmpQuery = (from items x in items
                            from items2 y in items2
                            select sb.AppendLine(string.Format(format, y.Name)));

如何执行此查询?我不想要结果,我只想执行。

谢谢的

执行 linq 表达式

如果不获取结果,则无法执行查询 - 查询生成结果。 您似乎试图做的是在循环中执行代码,而不是构建查询。 如果要在循环中执行代码,请编写一个循环并将 linq 留给实际查询:

例如使用:

 for (x in items) {
      for (y in items2) {
            sb.AppendLine(string.Format(format, y.Name);
      }
 }
你可以

这样做:

(from items x in items
  from items2 y in items2
  select y.Name)
.ToList()
.ForEach(s => sb.AppendLine(string.Format(format, s)));

请注意中间的 ToList() 将查询转换为具有 ForEach 方法的 List<T>

编辑
但请注意(如注释中所述),这将创建一个额外的中间列表,当您仅使用foreach遍历迭代器(仅带有"select y"的"from"表达式)时,您将没有该列表。