执行linq表达式

时间:2015-06-19 07:00:09

标签: c# linq

我写了一个像这样的查询

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

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

感谢' S

2 个答案:

答案 0 :(得分:2)

如果没有获得结果,则无法执行查询 - 查询构建结果。您似乎要做的是在循环中执行代码,而不是构建查询。如果你想在循环中执行代码,请编写一个循环并留下linq用于实际查询:

e.g。使用方法:

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

答案 1 :(得分:0)

你可以这样做:

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

注意中间的ToList()将查询转换为List<T>,其中sprintf()/ snprintf()方法。

修改
但请注意(如评论中所述)这将创建一个额外的中间列表,当您使用foreach循环遍历迭代器时,您将不会拥有这个列表(&#34;来自&#34;表达式) a&#34;选择y&#34;)。