我需要遍历子树中的所有项目。 因此,我想将前任的所有childItem放入数组中。我尝试过:
var successors =
TabWebContext.MenuItemSet.Where(m => m.PredecessorId == parentId).ToArray();
我也尝试了不使用.ToArray()
和使用.ToList()
的情况。
我有以下循环:while (successors.Count()>0){...}
(或更确切地说,.Length>0
)。
条件从不成立。
您认为我做错了什么?我知道有元素(如果我做.FirstOrDefault()
,至少发现一个元素。
答案 0 :(得分:1)
为什么您认为它需要在数组中进行迭代?您可以像这样遍历列表:
foreach (var successor in TabWebContext.MenuItemSet.Where(m => m.PredecessorId == parentId))
{
// do stuff with 'successor'
}
答案 1 :(得分:0)
仅举例说明如何使用where
子句从数据源中全选。
int[] numbers = { 2, 34, 23, 11 }; //data source >> can be EF or ADO.NET
var result = numbers.Where(n => n <= 20).ToList(); // select all with filteration
foreach(int i in result ) //just to loop and
{
Console.WriteLine(i);
}
输出:
22
11
所以在var successors =
TabWebContext.MenuItemSet.Where(m => m.PredecessorId == parentId).ToArray();
如果您确实遇到错误,请在问题中加以说明。