2

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

public IEnumerable<Item> GetAllItems()
{
    return Tabs.SelectMany(tab =>
        {
            tab.Pick();
            return tab.Items;
        });
}

我不知道在哪里放置tab.Pick()方法调用。

4

1 回答 1

5

不,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;

(或者你想做的任何事情。)

于 2017-12-23T09:42:02.460 回答