【发布时间】:2021-11-10 17:04:31
【问题描述】:
最近我升级了我的一个项目以使用.NET 6。之前我使用MoreLinq 库来使用DistinctBy() 将其应用于特定属性。
现在,当我将 TargetFramework 升级到 .NET 6 时,此更改提供了对 DistinctBy() 的内置支持。
现在编译器对需要选择哪个DistinctBy() 感到困惑,我不能依赖System.Linq,因为删除using MoreLinq 会导致其他多个错误。
我知道如果我们在相同方法之间遇到歧义,那么我们可以使用using alias,但我不确定如何将using alias 用于Linq 扩展方法。
这是错误:
我可以在下面的小提琴中复制同样的问题
【问题讨论】:
-
你可以像普通方法一样调用扩展方法,所以:
MoreLinq.MoreEnumerable.DistinctBy(yourEnumerable, otherParams) -
PS 您无法在小提琴中复制问题的原因是您缺少
using System.Linq; -
这就是OSS的美妙之处。只需 fork MoreLinq 并删除其版本的
DistinctBy。 -
@DavidG,感谢您的第二条评论。我在小提琴中修复了它并更新了问题。让我试试你的第一条评论
-
@DavidG,您的解决方案对我有用。您可以将其添加为答案