我有以下C#LINQ查询,我需要将其移植到Angular 2。

var groups = funds.OrderBy(g => g.DefaultGroupName).GroupBy(g => g.DefaultGroupName)
                        .Select(grp => new { GroupName = grp.Key, Funds = grp.ToList().OrderBy(f => f.ZOrder) });


这是我目前所拥有的(不起作用)。如您所见,我是Angular的新手,因此非常感谢您的帮助或指导。

// get the list of funds, grouped by Default Group Name
getFundGroups(): Observable<FundGroup[]> {
    const url = this.baseUrl;
    const funds =  this.http.get(url)
        .map(response => <Fund[]>response.json())
        .catch(this.handleError);

    const groups = funds.groupBy(fund => fund.DefaultGroupName)
                    .flatMap(group => group.reduce((a, b) => [...a, ...b], []));
    return groups;
}

最佳答案

您可以使用LINQ for Angular

https://github.com/Angular-Public/ng2-linq

import * as Enumerable from 'linq';


然后在您的函数中可以编写如下内容。

let groups = Enumerbable.from(funds).where(x => x.Active);

09-25 19:36