Я хотел бы запросить базу данных и получить список категорий (которые я использую с помощью синтаксиса запроса Linq). Затем повторите этот список категорий для использования в моем коде C#. Кажется, это должно быть относительно легко, но пока я просто нахожу примеры отображения результатов в представлении. Как использовать результаты в коде?Итерация через список результатов LINQ
ответ
Вы можете просто использовать foreach
:
foreach(var category in categories)
{
// do something with it
}
Если вы хотите, чтобы сохраняться его в коллекции в памяти для доступа к нему по индексу вы можете создать массив или список с помощью Enumerable.ToArray
или Enumerable.ToList
, например:
List<Category> categoryList = categories.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;' –
Я сделал что-то очень похожее - итерацию по результирующему набору выражения LINQ с циклом for , и мой босс сказал использовать LINQ в исходном выражении вместо цикла после выражения LINQ. – James
Просто, чтобы добавить другую альтернативу можно также использовать для цикла:
for(int i = 0; i < categories.Count(); i++)
{
var thisElement = categories.ElementAt(i);
}
Хотя чуть менее читаемым для циклы часто бывают немного быстрее (хотя это во многом зависит от базового типа вашего IEnumerable).
Вы не должны использовать этот 'for'-loop в самом запросе. Вместо этого вы должны создать из него коллекцию. В противном случае вы выполняете запрос на каждой итерации (и на '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
- 2. Итерация через набор результатов .Net
- 3. Итерация через набор результатов bs4
- 4. Итерация через вложенный список
- 5. Итерация через список типов
- 6. Итерация через список R
- 7. Итерация через список
- 8. Итерация через список Python
- 9. Итерация через список для
- 10. Итерация через список списков?
- 11. linq to xml итерация через результаты
- 12. Итерация через список элементов удаления
- 13. Итерация через общий список java
- 14. Итерация через список списков строк?
- 15. Итерация через список, поиск дубликатов
- 16. Итерация через список в Python
- 17. Clojure: сложная итерация через список?
- 18. Итерация через список перечня объектов
- 19. Итерация через список в python
- 20. Итерация через связанный список ifaddr
- 21. Итерация через список переменных (.net)
- 22. итерация BlackBerry через список SelectedItems
- 23. Java: Итерация через список массивов
- 24. Итерация через список - Python 3
- 25. Lua - итерация через вложенный список
- 26. Итерация через список в javascript
- 27. Итерация через все двусвязный список
- 28. Linq создать типизированный список результатов
- 29. PHP - Итерация через ассоциативный массив результатов db
- 30. vb.net, итерация через arraylists
Можете ли вы показать нам, что вы пробовали? Или, может быть, некоторый псевдокод, который отображает то, что вы пытаетесь достичь – Moeri