【发布时间】:2017-01-10 16:29:26
【问题描述】:
我正在尝试在 for each 循环中使用 IEnumerable 的 Concat 方法,但我无法使其正常工作。
IEnumerable<Geo> geos = null;
foreach (string a in values)
{
if (geos == null)
geos = entities.Geos.Where(g => (g.ACode == Convert.ToInt16(a)));
else
geos = geos.Concat(entities.Geos.Where(g => (g.ACode == Convert.ToInt16(a))));
}
它返回的只是值中最后一个“a”的值,以及值中存在的记录数。
所以如果我有 1,2,3 作为值,它只返回 3。我也需要 1,2 和 3 的值。
我哪里错了?
【问题讨论】:
-
我会检查
entities.Geos.Where(g => (g.ACode == Convert.ToInt16(a)))是否实际上返回了 1 和 2 的行。此外,您使用的是什么版本的 Visual Studio,2013 年 foreach 循环中变量捕获的行为发生了变化 -
@Scott Chamberlain 它正在返回 1 和 2 的值,我使用的是 VS 2010