如何使用linq-es2015对两个键进行分组?

时间:2018-06-23 18:59:30

标签: javascript angular linq

简短的问题:如何通过在Angular应用中使用linq-es2015对两个键进行分组?

一个键很好用,但是我不知道如何添加另一个键。

var results = asEnumerable(fieldtoregion)
      .GroupBy(x => x.regionId, x => x, (key, b) => {
        return { regionId: key, fields: asEnumerable(b).ToArray() }
      }).ToArray();

第二个键名称:isCollection。 我尝试过:

  1. x => {r:x.regionId,c:x.isCollection}
  2. x =>({r:x.regionId,c:x.isCollection})
  3. x =>(“ $ x.regionId $ x.isCollection”)

任何帮助都会很棒!

这是要测试的TypeScript类:

export class FieldViewModel {
  id!: number;
  postId!: number;
  pageId!: number;
  regionId?: string | undefined;
  translationId!: number;
  clrType?: string | undefined;
  fieldId?: string | undefined;
  isCollection!: boolean;
}

1 个答案:

答案 0 :(得分:1)

您可以尝试仅使用第三和第四参数进行分组。分组字符串由两个带有空格的属性组成。

var results = asEnumerable(fieldtoregion)
        .GroupBy(
            null,
            null,
            (key, b) => ({ regionId: key, fields: asEnumerable(b).ToArray() }),
            "$.regionId + ' ' + $.isCollection"
        )
        .ToArray();