You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LINQ中对List(Of Stores)按FromStore和ToStore两列分组?

实现List(Of Stores)按FromStore和ToStore双字段分组

你之前的代码只实现了按单个ToStore字段分组,要完成双字段分组其实很简单,核心是把两个字段组合成一个分组键就行。因为VB.NET的匿名类型会自动按属性值做相等比较,刚好适合用来当分组的依据。

修改后的代码如下:

Dim Test As List(Of Stores) = MyTStores.GroupBy(Function(x) New With {x.FromStore, x.ToStore}) _
                                       .Select(Function(grp) grp.First()) _
                                       .ToList()

简单说明:

  • 把GroupBy的分组键从x.ToStore改成New With {x.FromStore, x.ToStore},这样就会同时依据这两个字段的值分组——只有当某条数据的FromStore和ToStore都和组内其他成员完全一致时,才会被分到同一组。
  • 后续的Select(Function(grp) grp.First())和ToList()逻辑和你原来的代码一致,就是取每个分组里的第一条数据,最终生成新的Stores列表。

如果之后需要更复杂的分组逻辑(比如要复用这个键类型),也可以用Tuple(Of T1, T2)或者自定义一个包含这两个字段的类(记得重写Equals和GetHashCode方法),不过匿名类型是这种场景下最简洁的实现方式啦。

内容的提问来源于stack exchange,提问作者Etienne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:56:23