gpt4 book ai didi

vb.net - 具有多个参数的 LINQ 分组依据

转载 作者:行者123 更新时间:2023-12-03 23:22:04 25 4
gpt4 key购买 nike

我有一个 VB.NET 应用程序,想对多列进行分组。

类(class)结构:

Public Class Person
Public Property Name as String
Public Property City as String
Public Property Country as String
End Class

Dim oResult = PersonList _
.GroupBy(Function(v) New With {v.City, v.Country}) _
.Where(Function(grp) grp.Count > 1).ToList()

我有多个人记录,其中包含相同的城市名称和国家/地区名称。但上面的查询返回零项。如果我只使用一列城市或国家,那么它工作正常。
Dim oResult = PersonList _
.GroupBy(Function(v) v.City) _
.Where(Function(grp) grp.Count > 1).ToList()

任何人都可以指出我对带有多个参数的 Group By LINQ 查询的错误之处。

最佳答案

问题是只有Key匿名类型中的属性在 VB 中用于相等和散列。 (C# 匿名类型中的所有属性实际上都是关键属性。)因此,您只需将查询更改为:

Dim oResult = PersonList _
.GroupBy(Function(v) New With { Key v.City, Key v.Country}) _
.Where(Function(grp) grp.Count > 1).ToList()

请参阅 anonymous types in VB 的文档更多细节。

关于vb.net - 具有多个参数的 LINQ 分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14660240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com