我写了一个这样的查询
var tmpQuery = (from items x in items
from items2 y in items2
select sb.AppendLine(string.Format(format, y.Name)));
如何执行此查询?我不想要结果,我只想执行。
谢谢的
如果不获取结果,则无法执行查询 - 查询生成结果。 您似乎试图做的是在循环中执行代码,而不是构建查询。 如果要在循环中执行代码,请编写一个循环并将 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"表达式)时,您将没有该列表。