【问题标题】:Using Group by in Linq to get array or Ienumerable of datatable在 Linq 中使用 Group by 获取数据表的数组或 Ienumerable
【发布时间】:2019-12-07 12:56:28
【问题描述】:

我的桌子是这样的:

Col1          Col2        Col3
1              A            ABCD
2              B            EFGH
3              A            MNOP
4              B            PQRS

我想要 linq 查询,它将 Ienumerable 作为列值相同的数据表的返回。

1           A       ABCD
3           A       MNOP

2           B       EFGH
4           B       PQRS

我尝试的是:

(From p In d1.AsEnumerable() Group By x= New With { Key.a =p.Item("Col2")} Into Group Select Group(0)).ToArray().CopyToDataTable()

但是我如何选择整个数据表数组(组)而不仅仅是组(0)或组(1)?

【问题讨论】:

  • 使用 OrderBy 而不是 GroupBy。 Group 给出一个二维数组,而 OrderBy 给出一个一维数组。如果您使用 GroupBy 那么您将不得不使用 SelectMany 它将采用二维数组并将其变为一维。

标签: c# linq


【解决方案1】:

希望我正确理解了您的问题。您可以执行以下操作

var result = d1.AsEnumerable().GroupBy(x=>x["Col2"]).Select(x=>x.CopyToDataTable());

在解决方案中,您按列Col2 分组并使用CopyToDataTable 创建表。

输出样本

【讨论】:

  • 我在 uipath 上工作,所以 lamda 表达式还不能在这里工作
  • 大家好(来自 p In d1.AsEnumerable() Group By x= New With { Key.a =p.Item("Col4")} Into Group Select Group.copytodatatable()) WOKRED THE COPYTODATATABLE DIDNT SHOW 的下拉菜单,因此我很困惑这是否可能
  • @ankitkwar 很高兴帮助你。如果它帮助您解决问题,请将其标记为答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多