Синтаксис запроса LINQ с несколькими операторами
Можно ли переписать этот метод, используя синтаксис запроса LINQ?
public IEnumerable<Item> GetAllItems()
{
return Tabs.SelectMany(tab =>
{
tab.Pick();
return tab.Items;
});
}
Я не могу понять, где разместить вызов метода tab.Pick()
.
1 ответ:
Нет, выражения запросов в LINQ требуют, чтобы каждая часть выборки и т. д. была одним выражением, а не несколькими операторами.
Однако вы можете написать отдельный метод:
public IEnumerable<Item> PickItems(Tab tab) { tab.Pick(); return tab.Items; }
Затем используйте:
var query = from tab in tabs from item in PickItems(tab) select item.Name;
(или все, что вы хотите сделать.)