具有多个语句的 LINQ 查询语法
LINQ query syntax with multiple statements
能否使用 LINQ 的查询语法重写此方法?
public IEnumerable<Item> GetAllItems()
{
return Tabs.SelectMany(tab =>
{
tab.Pick();
return tab.Items;
});
}
我不知道在哪里放置 tab.Pick()
方法调用。
不,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;
(或者任何你想做的。)
能否使用 LINQ 的查询语法重写此方法?
public IEnumerable<Item> GetAllItems()
{
return Tabs.SelectMany(tab =>
{
tab.Pick();
return tab.Items;
});
}
我不知道在哪里放置 tab.Pick()
方法调用。
不,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;
(或者任何你想做的。)