我想查询数据库并获取类别列表(我正在使用Linq查询语法)。然后遍历该类别的列表以用于我的C#代码。这看起来应该是相对容易的,但到目前为止,我只是找到了在视图中显示结果的示例。如何在代码中使用结果?通过LINQ结果列表进行迭代
回答
您可以简单地用一个foreach
:
foreach(var category in categories)
{
// do something with it
}
如果你要坚持它的内存中的集合通过索引来访问它,你可以创建通过Enumerable.ToArray
或Enumerable.ToList
数组或列表,例如:
现在您还可以对其进行修改。
categoryList[index] = otherCategory;
,或者你可以使用一个for
-loop代替:
for(int index = 0; index < categoryList.Count; index++)
{
Category cat = categoryList[index];
//do something
}
如何将第一个结果放入变量中?例如,如果我迭代了一个数组,它会是:String myVar = Catigory [i] – user800426
@ user800426'string myVar = category;' –
我做了一件非常相似的事情 - 用for循环迭代LINQ表达式的结果集,而我的老板说在LINQ表达式之后,在原始表达式中使用LINQ而不是循环。 – James
我想补充另一种选择,你也可以使用一个for循环:
for(int i = 0; i < categories.Count(); i++)
{
var thisElement = categories.ElementAt(i);
}
虽然有点少读了循环通常要快得多(尽管它在很大程度上取决于IEnumerable的基础类型)。
你不应该在查询本身上使用'for'''循环。相反,你应该从它创建一个集合。否则,你在每次迭代(和'categories.Count()')上执行查询。因此,如果'categories'是一个数据库查询(它是),那么您正在查询返回的每条记录上执行它,只是为了到达下一个索引处的元素。 –
感谢您的澄清! – Liath
您还可以将代码添加到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;
});
- 1. LINQ to XML通过结果迭代
- 2. 通过嵌套列表进行迭代
- 3. 通过列表进行迭代
- 4. 通过多个列表进行迭代
- 5. 通过嵌套列表进行迭代
- 6. 通过与Linq的更改列表进行迭代
- 7. 迭代通过JSOn结果
- 8. 通过散列图进行迭代
- 9. 通过stdClass进行迭代
- 10. 通过xmltextreader进行迭代
- 11. 如何通过sqlite_step结果进行迭代
- 12. R通过数据帧进行迭代的结果是什么?
- 13. 如何通过OracleDbType.RefCursor结果集进行迭代
- 14. 通过双向链表进行迭代?
- 15. 通过临时表进行迭代
- 16. 迭代通过列表与
- 17. 迭代通过Java列表
- 18. 迭代通过Python列表
- 19. 迭代通过列表
- 20. 通过列表迭代
- 21. 迭代MySQL的结果进行比较
- 22. 通过散列表列表迭代
- 23. 通过2d向量行进行迭代
- 24. 通过循环列表进行迭代搜索
- 25. 通过字典对列表进行迭代
- 26. 通过迭代对列表元素进行比较
- 27. 通过带有条件语句的ocaml列表进行迭代
- 28. 通过Outlook预约进行迭代
- 29. 通过选择选项进行迭代
- 30. 通过NSData字节进行迭代
你能告诉我们你试过了吗?或者可能是一些伪代码,显示你想要实现的内容 – Moeri