我写了一个像这样的查询
var tmpQuery = (from items x in items
from items2 y in items2
select sb.AppendLine(string.Format(format, y.Name)));
如何执行此查询?我不想要结果,我只想执行。
感谢' S
答案 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;)。