Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有多个语句的LINQ查询语法_C#_Linq_Linq Query Syntax - Fatal编程技术网

C# 具有多个语句的LINQ查询语法

C# 具有多个语句的LINQ查询语法,c#,linq,linq-query-syntax,C#,Linq,Linq Query Syntax,可以使用LINQ的查询语法重写此方法吗 public IEnumerable<Item> GetAllItems() { return Tabs.SelectMany(tab => { tab.Pick(); return tab.Items; }); } public IEnumerable GetAllItems() { 返回选项卡。选择多个(选项卡=> { tab.Pick(); 返

可以使用LINQ的查询语法重写此方法吗

public IEnumerable<Item> GetAllItems()
{
    return Tabs.SelectMany(tab =>
        {
            tab.Pick();
            return tab.Items;
        });
}
public IEnumerable GetAllItems()
{
返回选项卡。选择多个(选项卡=>
{
tab.Pick();
返回页签。项目;
});
}

我不知道在哪里放置
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;