我想查詢數據庫並獲取類別列表(我正在使用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. 通過xmltextreader進行迭代
- 10. 通過stdClass進行迭代
- 11. R通過數據幀進行迭代的結果是什麼?
- 12. 如何通過OracleDbType.RefCursor結果集進行迭代
- 13. 如何通過sqlite_step結果進行迭代
- 14. 通過雙向鏈表進行迭代?
- 15. 通過臨時表進行迭代
- 16. 迭代通過柱和總結結果
- 17. 迭代通過列表與
- 18. 通過列表迭代
- 19. 迭代通過列表
- 20. 迭代通過Java列表
- 21. 迭代通過Python列表
- 22. wso2esb迭代通過wso2dss結果
- 23. 迭代MySQL的結果進行比較
- 24. 通過2d向量行進行迭代
- 25. 通過迭代對列表元素進行比較
- 26. 通過SharePoint 2013 REST API列表項目進行迭代
- 27. 通過字典對列表進行迭代
- 28. 通過帶有條件語句的ocaml列表進行迭代
- 29. 通過循環列表進行迭代搜索
- 30. 通過散列表列表迭代
你能告訴我們你試過了嗎?或者可能是一些僞代碼,顯示你想要實現的內容 – Moeri