【发布时间】:2015-04-01 20:22:19
【问题描述】:
使用下面的简单示例,我的目标是将 linq 结果保持在同一个列表中:
for (int j = 0; j < YatakList.Count; j++)
{
if (YatakList[j].GrupId != Op.yatakGrupId)
{
continue;
}
var AllBlanks = YatakList[j].blanks
.SelectMany((item, index) =>
item.Select(entry => new
{
Index = index,
Start = entry.Key,
Length = entry.Value,
Id = YatakList[j].Id,
GrupId = YatakList[j].GrupId
}))
.OrderBy(item => item.Start);
var LenghtSuitingBlanks = from blank in AllBlanks
where (blank.Length >= Op.sure)
select blank;
var closestDiff = LenghtSuitingBlanks.First();
}
通过使用 for 循环,我从 YatakList 中获得了第一个结果,但在 for 循环的第二种情况 (j=1) 中,我得到了第二个结果集,我失去了第一个结果集。 我的问题是:
如何将 linq 的结果集保存在列表中 或
是否有不使用 for 循环的替代方式(首选解决方案)
【问题讨论】:
-
既然您已将查询的所有结果声明为循环内部的局部变量,那么您期望结果会去哪里?
-
我正在阅读您的示例,但我无法弄清楚您要做什么?您是否需要 YatakList 中不在 Op.GroupId 中的所有银行?
-
AllBlanks retrn 类型是匿名的,我想将结果集保留在 for 循环之前定义的 List 中。或者 YatakList 中的所有元素在字典类型中保持空白是否有替代解决方案返回 YatakList 中的所有结果
-
我认为您想说的是重新排序您拥有的相同列表集合。我无法弄清楚你在代码中做了什么。
-
让我更清楚地解释我的问题:
标签: c# linq anonymous-types