我想查询数据库并获取一个类别列表(我正在使用Linq查询语法)。然后遍历该类别列表以在我的C#代码中使用。这似乎应该相对容易,但到目前为止,我只是找到在视图中显示结果的示例。如何在代码中使用结果?
答案 0 :(得分:13)
您只需使用foreach
:
foreach(var category in categories)
{
// do something with it
}
如果您希望将其保留在内存中的集合中以通过索引访问它,您可以通过Enumerable.ToArray
或Enumerable.ToList
创建数组或列表,例如:
List<Category> categoryList = categories.ToList();
现在你也可以修改它。
categoryList[index] = otherCategory;
或者您可以使用for
- 循环代替:
for(int index = 0; index < categoryList.Count; index++)
{
Category cat = categoryList[index];
//do something
}
答案 1 :(得分:3)
您还可以在Linq查询中添加代码。例如:
var numbs = new int[] { 1, 2, 3, 4, 5, 6 };
numbs.Select(i => {
SomeMethod(i);
return i;
});
然后,您还可以选择新结果或修改结果并将其存储到现有数组中。例如
var numbs = new int[] { 1, 2, 3, 4, 5, 6 };
var multList = numbs.Select(i => {
var mult = MultiplyBy2(i);
Console.Write("New Number: " + mult);
return mult;
});
答案 2 :(得分:2)
只是为了添加另一种选择,你也可以使用for循环:
for(int i = 0; i < categories.Count(); i++)
{
var thisElement = categories.ElementAt(i);
}
虽然循环的可读性稍差但通常要快得多(尽管它主要取决于IEnumerable的基础类型)。