首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在linq中按两个数组元素分组

如何在linq中按两个数组元素分组
EN

Stack Overflow用户
提问于 2015-04-10 11:04:40
回答 1查看 600关注 0票数 0

在数据库之外,我试图创建一个对象列表,其中只包含不同的值。

对于仅按1列分组的情况,此方法工作良好。

代码语言:javascript
运行
复制
List<object[]> myList =
    myDataTable.AddRange(entity.MyTable.AsEnumerable().Select(e => new object[]{ e.id, e.foreignKey, e.id, e.name }).GroupBy(x => x[0]).Select(x => x.First()).ToList();

但是对于2列,我得到了错误:

代码语言:javascript
运行
复制
List<object[]> myList =
    myDataTable.AddRange(entity.MyTable.AsEnumerable().Select(e => new object[]{ e.id, e.foreignKey, e.id, e.name }).GroupBy(x => new {x[0], x[1]}).Select(x => x.First()).ToList();

错误信息是:

无效的匿名类型成员声明器。必须使用成员分配、简单名称或成员访问权限声明匿名类型成员。

现在我的问题是:我如何按2个数组元素进行分组?

EN

回答 1

Stack Overflow用户

发布于 2015-04-10 11:08:26

正如异常消息所述,您需要在GroupBy的匿名类型声明中声明成员,如下所示:-

代码语言:javascript
运行
复制
List<object[]> myList =
    myDataTable.AddRange(entity.MyTable.AsEnumerable()
              .Select(e => new object[]{ e.id, e.foreignKey, e.id, e.name })
              .GroupBy(x => new { a = x[0], b = x[1] }).Select(x => x.First()).ToList();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29559817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档